Systems and methods for providing information for an on-demand service

ABSTRACT

The present disclosure relates to a method of providing information for an on-demand service. The method may include: receiving service request information from a service requester. The service request information may include information relating to a location of the service requester; determining a candidate meetup location set based at least in part on the service request information. The candidate meetup location set may include at least one candidate meetup location; sending the candidate meetup location to the service requester; receiving processed data related to the candidate meetup location set by the service requester; and generating a processing result based at least in part on the processed data related to the candidate meetup location set by the service requester. Also disclosed is a system for implementing the method.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application a continuation of U.S. application Ser. No. 15/544,138,filed on Jul. 17, 2017, which is a U.S. national stage under 35 U.S.C. §371 of International Application No. PCT/CN2016/071470, filed on Jan.20, 2016, which claims priority of Chinese Application No.201510028638.0, filed on Jan. 20, 2015, Chinese Application No.201510035598.2, filed on Jan. 23, 2015, Chinese Application No.201510158678.7, filed on Apr. 3, 2015, Chinese Application No.201510163520.9, filed on Apr. 8, 2015, Chinese Application No.201510243122.8, filed on May 13, 2015, Chinese Application No.201510295656.5, filed on Jun. 2, 2015, Chinese Application No.201510515752.6 filed on Aug. 20, 2015, and Chinese Application No.201510600441.X, filed on Sep. 18, 2015. The entire contents of each ofthe above-referenced applications are hereby incorporated by reference.

TECHNICAL FIELD

This disclosure generally relates to a system and method for providinginformation for an on-demand service, and more particularly, to a systemand method for providing information for an on-demand service usingmobile Internet technologies and data processing technologies.

BACKGROUND

On-demand services have become increasingly popular. Taking atransportation service as an example, a passenger may send a servicerequest using an application installed on a device of the passenger andwait for a driver to pickup him. Existing transportation serviceapplications can navigate based on positioning information of a device.However, it might be time consuming for a driver and a passenger to meetat a meetup location using the existing transportation serviceapplications because of positioning errors, imprecise positioninglocations or unfamiliarity with the meetup location by the driver and/orthe passenger. This may affect the efficiency of transportation servicesand may compromise user experience.

SUMMARY

In one aspect of the present disclosure, a method of providinginformation for an on-demand service is provided. The method mayinclude: receiving service request information from a service requester.The service request information may include information relating to alocation of the service requester; determining a candidate meetuplocation set based at least in part on the service request information.The candidate meetup location set may include at least one candidatemeetup location; sending the candidate meetup location set to theservice requester; receiving processed data related to the candidatemeetup location set by the service requester; and generating aprocessing result based at least in part on the processed data relatedto the candidate meetup location by the service requester.

In another aspect of the present disclosure, a system configured toprovide information for an on-demand service is provided. The system mayinclude a tangible computer-readable storage medium and a processor. Thecomputer-readable storage medium may be configured to store anexecutable module. The executable module may include a service requesterinterface module. The service requester interface may be configured toreceive service request information from a service requester. Theservice request information may include information relating to alocation of the service requester. The service requester interfacemodule may be configured to receive processed data related to acandidate meetup location set from the service requester. The candidatemeetup location set may include at least one candidate meetup location.The service requester interface module may be configured to send thecandidate meetup location set to the service requester. The executablemodule may include a processing module. The processing module may beconfigured to determine the candidate meetup location set based at leastin part on the service request information. The processing module may beconfigured to generate a processing result based at least in part on theprocessed data related to the candidate meetup location set from theservice requester. The processor may be configured to execute theexecutable module stored in the computer-readable medium.

According to one embodiment of the present disclosure, the processeddata related to the candidate meetup location set may be generated byprocessing the candidate meetup location set by the service requester.The processing may include at least one of: selecting a candidate meetuplocation from the candidate meetup location set; removing a candidatemeetup location from the candidate meetup location set; modifying acandidate meetup location of the candidate meetup location set; oradding a location to the candidate meetup location set.

According to one embodiment of the present disclosure, the method mayfurther include sending the candidate meetup location set to a serviceprovider.

According to one embodiment of the present disclosure, the method mayfurther include receiving processed data related to the candidate meetuplocation by the service provider.

According to one embodiment of the present disclosure, the processeddata related to the candidate meetup location set may be generated byprocessing the candidate meetup location set by the service provider.The processing may include at least one of: selecting a candidate meetuplocation from the candidate meetup location set; removing a candidatemeetup location from the candidate meetup location set; modifying acandidate meetup location of the candidate meetup location set; oradding a location to the candidate meetup location set.

According to one embodiment of the present disclosure, the method mayfurther include sending the processing result to the service provider.

According to one embodiment of the present disclosure, the method mayfurther include evaluating the candidate meetup location.

According to one embodiment of the present disclosure, the evaluation ofthe candidate meetup location may be based on a distance between thecandidate meetup location and the location of the service requester.

According to one embodiment of the present disclosure, the evaluation ofthe candidate meetup location may be based on historical informationrelating to the candidate meetup location.

According to one embodiment of the present disclosure, the method mayfurther include sending the processing result to a service provider.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is further described in terms of exemplaryembodiments. These exemplary embodiments are described in detail withreference to the drawings. The drawings are not to scale. Theseembodiments are non-limiting exemplary embodiments, in which likereference numerals represent similar structures throughout the severalviews of the drawings, and wherein:

FIG. 1-A illustrates a schematic diagram of a network environmentcontaining an on-demand service system according to some embodiments ofthe present disclosure illustrate;

FIG. 1-B illustrates a schematic diagram of a network environmentcontaining an on-demand service system according to another embodimentof the present disclosure;

FIG. 2 is a schematic diagram of an on-demand service system accordingto some embodiments of the present disclosure;

FIG. 3 is a schematic diagram of a processing module of a positioningengine according to some embodiments of the present disclosure;

FIG. 4 is a schematic diagram of a passenger interface of a positioningengine according to some embodiments of the present disclosure;

FIG. 5 is a schematic diagram of a driver interface of a positioningengine according to some embodiments of the present disclosure;

FIG. 6 is a schematic diagram of a user terminal device according tosome embodiments of the present disclosure;

FIG. 7 is a schematic diagram of a database according to someembodiments of the present disclosure;

FIG. 8 is a flow chart of an exemplary process for determining a preciselocation and a meetup location according to some embodiments of thepresent disclosure;

FIG. 9 is a flow chart of an exemplary process for generating optimizedlocation information according to some embodiments of the presentdisclosure;

FIG. 10 is a flow chart of an exemplary process for generating optimizedlocation information according to some embodiments of the presentdisclosure;

FIG. 11 is a flow chart of an exemplary process for generating optimizedlocation information according to some embodiments of the presentdisclosure;

FIG. 12 is a flow chart of an exemplary process for precise positioningby a passenger terminal device according to some embodiments of thepresent disclosure;

FIG. 13 is a flowchart of an exemplary process for processing meetuplocation by a driver terminal device according to some embodiments ofthe present disclosure;

FIG. 14 is a flow chart of an exemplary process for determining a meetuplocation according to some embodiments of the present disclosure;

FIG. 15 is another flow chart of an exemplary process for determining ameetup location according to some embodiments of the present disclosure:

FIG. 16 is a flow chart of an exemplary process for determining a meetuplocation by a positioning engine according to some embodiments of thepresent disclosure;

FIG. 17 is a flow chart of an exemplary process for determining a meetuplocation by a positioning engine according to some embodiments of thepresent disclosure;

FIG. 18 is a flow chart of an exemplary process for generating a meetuplocation by a positioning engine according to some embodiments of thepresent disclosure;

FIG. 19-A is a flow chart of an exemplary process for coordinating apassenger terminal device and a driver terminal device to measuredistance by a positioning engine according to some embodiments of thepresent disclosure;

FIG. 19-B is a flow chart of an exemplary process for measuring distanceby a driver terminal device according to some embodiments of the presentdisclosure;

FIG. 20 is a flowchart of an exemplary process for measuring distanceforma positioning engine to a passenger terminal device by a positioningengine by a Bluetooth® base station according to some embodiments of thepresent disclosure;

FIG. 21 illustrates a structure of a mobile device that is configured toimplement a specific system disclosed in the present disclosure; and

FIG. 22 illustrates a structure of a computer device that is configuredto implement a specific system disclosed in the present disclosure.

DETAILED DESCRIPTION

In order to illustrate the technical solutions related to theembodiments of the present disclosure, brief introduction of thedrawings referred to in the description of the embodiments is providedbelow. Obviously, drawings described below are only some examples orembodiments of the present disclosure. Those having ordinary skills inthe art, without further creative efforts, may apply the presentdisclosure to other similar scenarios according to these drawings.Unless stated otherwise or obvious from the context, the same referencenumeral in the drawings refers to the same structure and operation.

As used in the disclosure and the appended claims, the singular forms“a,” “an,” and “the” include plural referents unless the content clearlydictates otherwise. It will be further understood that the terms“comprises,” “comprising,” “includes,” and/or “including” when used inthe disclosure, specify the presence of stated steps and elements, butdo not preclude the presence or addition of one or more other steps andelements.

Some modules of the system may be referred to in various ways accordingto some embodiments of the present disclosure, however, any number ofdifferent modules may be used and operated in a client terminal and/or aserver. These modules are intended to be illustrative, not intended tolimit the scope of the present disclosure. Different modules may be usedin different aspects of the system and method.

According to some embodiments of the present disclosure, flow charts areused to illustrate the operations performed by the system. It is to beexpressly understood, the operations above or below may or may not beimplemented in order. Conversely, the operations may be performed ininverted order, or simultaneously. Besides, one or more other operationsmay be added to the flowcharts, or one or more operations may be omittedfrom the flowchart.

Embodiments of the present disclosure may be applied to differenttransportation systems including but not limited to land transportation,sea transportation, air transportation, space transportation, or thelike, or any combination thereof. A vehicle of the transportationsystems may include a rickshaw, travel tool, taxi, chauffeured car,hitch, bus, rail transportation (e.g., a train, a bullet train,high-speed rail, and subway), ship, airplane, spaceship, hot-airballoon, driverless vehicle, or the like, or any combination thereof.The transportation system may also include any transportation systemthat applies management and/or distribution, for example, a system forsending and/or receiving an express. The application scenarios ofdifferent embodiments of the present disclosure may include but notlimited to one or more webpages, browser plugins and/or extensions,client terminals, custom systems, intracompany analysis systems,artificial intelligence robots, or the like, or any combination thereof.It should be understood that application scenarios of the system andmethod disclosed herein are only some examples or embodiments. Thosehaving ordinary skills in the art, without further creative efforts, mayapply these drawings to other application scenarios. For example, othersimilar user order receiving system.

The term “user,” “passenger,” “requester,” “service requester,” and“customer” in the present disclosure are used interchangeably to referto an individual, an entity or a tool that may request or order aservice. The party may be an individual or device. Also, the term“driver,” “provider,” “service provider,” and “supplier” in the presentdisclosure are used interchangeably to refer to an individual, anentity, or a device that may provide a service or facilitate theproviding of the service. In addition, the term “user” in the presentdisclosure may refer to an individual, an entity, or a device that mayrequest a service, order a service, provide a service, or facilitateprovision of the service.

FIG. 1-A is a schematic diagram of a network environment 100 accordingto some embodiments of the present disclosure. The network environment100 may include an on-demand service system 105, one or more passengerterminal devices 120, one or more databases 130, one or more driverterminal devices 140, one or more networks 150, and one or moreinformation sources 160. The on-demand service systems 105 may include apositioning engine 110. In some embodiments, the positioning engine 110may be a system configured to analyze and process the collectedinformation to generate an analytical result. The positioning engine 110may be a server, or a server group connected via a wired or a wirelessnetwork. The server group may be centralized (e.g., a data center) ordistributed (e.g., a distributed system). The positioning engine 110 maybe centralized or distributed.

The passenger terminal 120 and the driver terminal 140 may be referredto as a user that may be an individual, a tool or other entity directlyrelating to service orders such as a service order requester and aservice provider respectively. A passenger may be a service requester.In the present disclosure, “passenger,” “passenger terminal,” and“passenger terminal device,” may be used interchangeably. A driver maybe a service provider. In the present disclosure, “driver,” “driverterminal,” and “driver terminal device” may be used interchangeably. Insome embodiments in which a user is a device, the passenger terminal 120may include a desktop computer 120-1, a laptop computer 120-2, abuilt-in device of a vehicle 120-3, a mobile device 120-4, or the like,or any combination thereof. Herein, the built-in device 120-3 may be acarputer, or the like; the mobile device 120-4 may be a smartphone, apersonal digital assistance (PDA), a tablet computer, a handheld gameplayer, smart glasses, a smartwatch, a wearable device, a virtualreality device, an augmented reality device (e.g., Google™ Glass, OculusRift™, HoloLens, Gear™ VR, etc.), or the like, or any combinationthereof. The driver terminal 140 may also include one or more similardevices described above.

The positioning engine 110 may directly access information stored in thedatabase 130 and/or read information from or write information to thedatabase 130. The positioning engine 110 may also access informationprovided by the user terminal 120 or 140 via the network 150. In someembodiments, the database 130 may include any device that is capable ofstoring data. The database 130 may be used to store data that arecollected by the passenger terminal 120 and/or the driver terminal 140,and data that used, generated or outputted by the positioning engine110. The database 130 and the on-demand service system 105 and or one ormore portions of the system 105 (e.g., the positioning engine 110) maybe connected via one or more wired and/or wireless communication links.

The network 150 may be a single network or a combination of networks.For example, the network 150 may include a local area network (LAN), awide area network (WAN), a public network, a private network, aproprietary network, a public switched telephone network (PSTN), theInternet, a wireless network, a virtual network, or any combinationthereof. The network 150 may include multiple network access points,such as a wired or wireless access point, including a base station150-1, abase station 150-2, a network switch point, etc. Through thenetwork access points, any data source may be connected to the network150 and transmit information via the network 150. Merely forillustration, the driver terminal 140 in a transportation service istaken as an example, and it is not intended to limit the scope of thepresent disclosure. For example, the driver terminal 140 may be a mobilephone, a tablet computer, etc. The network environment 100 of the driverterminal 140 may be a wireless network (e.g., Bluetooth® network,wireless local area network (WLAN), Wi-Fi, etc.), mobile networks (e.g.,2G, 3G, 4G signals, etc.), or other communication methods (e.g., virtualprivate network, (VPN), shared network, near field communication (NFC),ZigBee®, etc.).

The information source 160 may be a source configured to provide otherinformation for the system 105. The information source 160 may providethe system 105 with service information, such as weather conditions,traffic information, information of laws and regulations, news events,life information, life guide information, or the like. The informationsource 160 may exist in the form of a single central server, multipleservers connected via the network, multiple personal devices, etc. Whenthe information source 160 is implemented using multiple personaldevices, the personal devices can generate content (e.g., as referred toas the “user-generated content”), for example, by uploading text, voice,image and video to a cloud server. An information source may begenerated by the multiple personal devices and the cloud server.

Taking transportation service as an example, the information source 160may include a municipal service system containing map information andcity service information, a real-time traffic broadcasting system, aweather broadcasting system, a news network, or the like. Theinformation source 160 may be physical device, such as a common speedmeasuring device, a sensor, or an IOT (Internet of Things) device,including a vehicle speedometer, a radar speedometer, a temperature andhumidity sensor, etc. The information source 160 may be a sourceconfigured to obtain news, messages, real-time road information, or thelike. For example, the information source 160 may be a networkinformation source that includes an Internet news group based on Usenet,a server over the Internet, a weather information server, a roadcondition information server, or the like, or any combination thereof.Taking food delivery service as an example, the information source 160may be a system storing information of multiple food providers in aparticular region, a municipal service system containing map informationand city service information, a real-time traffic broadcasting system, aweather broadcasting system, a news network, or the like. The examplesdescribed herein are not intended to limit the scope of the informationsource or the type of services provided by the information source. Anydevice or network that can provide information of the services may bedesignated as an information source in the present application.

In some embodiments, the on-demand service system 105 and differentsections in the network environment 100 may be communicated based onorders. The subject matter of an order may be a product. In someembodiments, the product may be a tangible product or an intangibleproduct. The tangible product may be any object with a shape or a size,including food, medicine, commodities, chemical products, electricalappliances, clothing, vehicles, house properties, luxuries, or the like,or any combination thereof. The intangible product may include serviceproducts, financial products, intellective products, Internet products,or the like, or any combination thereof. The Internet products mayinclude any product that satisfies the user's requirements oninformation, entertainment, communication, or business. There are manymethods of classifying the Internet products. Taking the classificationmethod based on host platform as an example, the Internet products mayinclude personal host products, Web products, mobile Internet products,commercial host platform products, embedded products, or the like, orany combination thereof. The mobile Internet product may be a software,a program or a system used in mobile terminals. The mobile terminal mayinclude but not limited to a laptop computer, a tablet computer, amobile phone, a personal digital assistant (PDA), an electronic watch, aPOS machine, a carputer, a television, or the like, or any combinationthereof. For example, the mobile Internet product may include softwareor applications of social communication, shopping, travel,entertainment, learning, or investment used in the computer or themobile phone. The travel software or application may be a trip softwareor application, a vehicle booking software or application, a mapsoftware or application, or the like. The vehicle booking software orapplication may be used to book horses, carriages, rickshaws (e.g.,two-wheeled bicycles, three-wheeled bicycles, etc.), vehicles (e.g.,taxis, buses, etc.), trains, subways, ships, aircrafts (e.g., airplanes,helicopters, space shuttles, rockets, hot air balloons, etc.), or thelike, or any combination thereof.

FIG. 1-B is a schematic diagram illustrating the network environment100. FIG. 1-B is similar to FIG. 1-A. In FIG. 1-B, the database 130 isindependent and may be directly connected to the network 150. Theon-demand service system 105 or a part of the system 105 (e.g., thepositioning engine 110), and/or the user terminal 120 or 140 maydirectly access the database 130 via the network 150.

In FIG. 1-A and/or FIG. 1-B, the database 130 and the on-demand servicesystem 105, a part of system 105 (e.g., the positioning engine 110),and/or the user terminal device 120 or 140 may be connected in differentways. The access permission of each device to the database 130 may belimited. For example, the on-demand service system 105, or a part of thesystem 105 (e.g., the positioning engine 110) may have the highest levelof access permission to the database 130, e.g., permission to read ormodify public or personal information in the database 130 are allowed;the passenger terminal device 120 or the driver terminal device 140 maybe permitted to read some of the public information or the personalinformation relating to users when certain conditions are satisfied. Forexample, the on-demand service system 105 may update or modify thepublic information or the user related information in the database 130,based on one experiences of a user (a passenger or a driver) using theon-demand service system 105. For another example, when receiving aservice order from a passenger 120, a driver 140 may view some of theinformation of the passenger 120 in the database 130. However, thedriver 140 may not modify the information of the passenger in thedatabase 130 on his/her own, and only report the modification to theon-demand service system 105 so that the on-demand service system 105may determine whether to modify the information of the passenger 120 inthe database 130 accordingly or not. For another example, when receivinga service request from a driver 140, a passenger 120 may view some ofinformation (e.g., user rating information, driving experiences, etc.)of the driver 140 in the database 130, however, the passenger 120 maynot modify the information of the driver 140 in the database 130 onhis/her own, but may only report the modification to the on-demandservice system 105 so that the system 105 may determine whether or notto modify the information of the driver 140 in the database 130accordingly.

It should be noted that the above description of the service systembased on locations is provided for the purposes of illustration, and notintended to limit the scope of the present disclosure. For personshaving ordinary skills in the art, modules may be combined in variousways, or connected with other modules as sub-systems and variousvariations and modifications may be conducted under the teaching of thepresent disclosure. However, those variations and modifications may notdepart the spirit and scope of this disclosure. For example, thedatabase 130 may be a cloud computing platform with data storingfunction that includes but not limited to a public cloud, a privatecloud, a community cloud, a hybrid cloud, etc. All such modificationsare within the protection scope of the present disclosure.

FIG. 2 is a schematic block diagram of an exemplary system according tosome embodiments of the present disclosure. For brevity, the on-demandservice system 105 is not shown in the figure and the positioning engine110 is illustrated as an example. The positioning engine 110 may includeone or more processing modules 210, one or more storage modules 220, oneor more passenger interfaces 230 and one or more driver interfaces 240.The modules of the positioning 110 may be centralized or distributed.One or more modules of the positioning 110 may be local or remote. Insome embodiments, the positioning engine 100 may be a website server, afile server, a database server, a FTP server, an application server, aproxy server, a mail server, or the like, or any combination thereof.

In some embodiments, the positioning engine 110 may receive informationfrom and/or send processed information to a passenger 120 through thepassenger interface 230. Information may be directly obtained from oneor more passenger terminal devices 120 and/or one or more driverterminal devices 140 through the passenger interface 230 and/or thedriver interface 240 via the network 150. Alternatively or additionally,information may be directly received from the information source 160.The method of sending or receiving the information may be indirect. Theprocessing module 210 may obtain required information by sendingrequests to one or more information sources 160. Information in theinformation source 160 may include but is not limited to weatherconditions, road conditions, traffic conditions, or the like, or anycombination thereof.

In some embodiments, the processing module 210 may be configured toprocess related information. The processing module 210 may send theprocessed information to the passenger interface 230 and/or the driverinterface 240. The methods of information processing may include but notlimited to storing, classifying, filtering, converting, calculating,searching, predicating, training, or the like, or any combinationthereof. In some embodiments, the processing module 210 may include butnot limited to a Central Processing Unit (CPU), an Application SpecificIntegrated Circuit (ASIC), an Application Specific Instruction SetProcessor (ASIP), a Physics Processing Unit (PPC), a Digital ProcessingProcessor (DSP), a Field-Programmable Gate Array (FPGA), a ProgrammableLogic Device (PLD), a processor, a microprocessor, a controller, amicrocontroller, or the like, or any combination thereof.

In some embodiments, the passenger interface 230 and driver interface240 may be used to obtain information from the passenger 120 and thedriver 140, respectively. Herein, the obtained information may beinformation about requests for service, information about a currentlocation of a passenger or a driver, information about a text sent by apassenger 120/a driver 140, or any information sent by the passenger120/the driver 140 (e.g., uploaded information of images, video content,audio content, etc.). The obtained information may be stored in thestorage module 220 or calculated and processed by the processing module210.

In some embodiments, the passenger interface 230 and the driverinterface 240 may output information that is analyzed and processed bythe processing module 210. In some embodiments, the information may beoptimized positioning information, direct information of an order, orprocessed information of an order. The outputted information may be sentto the passenger 120 and/or the driver 140. The outputted informationthat is not sent may be stored in the database 130 or the storage module220.

In some embodiments, the database 130 may be configured in thebackground of the on-demand service system 105 (as shown in FIG. 1-A).In some embodiments, the database 130 may be a stand-alone device andmay directly connect with the network 150 (e.g., as shown in FIG. 1-B).In some embodiments, the database 130 may be a part of the on-demandservice system 105 or the positioning engine 110. The database 130 mayrefer to any device that can store data. The database 130 may be used tostore data collected from the user 120/140 and/or the information source160. The database 130 can also store various data generated by thepositioning engine 110. The database 130 or other storage devices of thesystem may be referred to as medium with a read/write function. Thedatabase 130 or other storage devices of the system may be internal orexternal devices. The connection between the database 130 and otherstorage devices in the system may be wired or wireless. The database 130or other storage devices of the system may include but not limited to ahierarchical database, a network database, a relational database, or thelike, or any combination thereof.

The database 130 or other storage device of the system may digitizeinformation, and then store the digitalized information in anelectrical, magnetic or optical storage device. The database 130 orother storage devices of the system may be used to store variousinformation such as programs, data, etc. The database 130 or otherstorage devices of the system may be configured to store information inthe form of electric energy, e.g., multiple memories, a random accessmemory (RAM), a read only memory (ROM), or the like. The RAM may includebut not limited to a decatron, a selectron, a delay line memory, aWilliams tube, dynamic random access memory (DRAM), a static randomaccess memory (SRAM), a thyristor random access memory (T-RAM), a zerocapacitor random access memory (Z-RAM), or the like, or any combinationthereof. The ROM may include but not limited to a bubble memory, atwistor memory, a thin film memory, a magnetic plated wire memory, amagnetic-core memory, a magnetic drum memory, a CD-ROM, a hard disk, atape, an early non-volatile random access memory (NVRAM), a phase-changememory, a magneto-resistive random access memory, a ferroelectric randomaccess memory, a nonvolatile SRAM, a flash memory, an electricallyerasable programmable read-only memory, an erasable programmableread-only memory, a programmable read-only memory, a mask ROM, afloating connected gate random access memory, a Nano random accessmemory, a racetrack memory, a variable resistive random access memory, aprogrammable metallization unit, or the like, or any combinationthereof. The database 130 or other storage devices of the system may beused to store information utilizing magnetic energy such as a hard disk,a software, tape, a magnetic-core memory, a bubble memory, a USB flashdisk, flash memory, or the like. The database 130 or other storagedevices of the system may be used to store information in the form ofoptics such as a compact disc (CD), a digital video disc (DVD), or thelike. The database 130 or other storage device of the system may be usedto store information in the form of magneto-optic, e.g., magnetic disc,or the like. The method of accessing the database 130 or other storagedevice of the system 105 may include random access, serial accessstorage, read-only access, or the like, or any combination thereof. Thedatabase 130 or other storage devices of the system 105 may be avolatile memory or a nonvolatile memory. It should be noted that theabove description of storage devices is provided for the purpose ofillustration, and not intended to limit the scope of the presentdisclosure. The database 130 or other storage devices of the system 105may be local or remote.

It should be noted that the processing module 210 and/or the database130 described above may reside in the user terminal, or implementcorresponding functions via a cloud computing platform. The cloudcomputing platform may include but not limited to a storage-based cloudplatform mainly used for data storing, a calculation-based cloudplatform mainly used for data processing, a hybrid cloud platform usedfor both data storing and data processing, etc. The cloud platform usedby the user terminal may be a public cloud, a private cloud, a communitycloud, a hybrid cloud, or the like. For example, some order informationand/or non-order information obtained by the user terminal may becalculated and/or stored by the user cloud platform according to actualrequirements. Some other order information and/or non-order informationmay be calculated and/or stored by a local processing module and/or asystem database.

It should be understood that the positioning engine 110 in FIG. 2 may beimplemented by a variety of methods. For example, the positioning engine110 may be implemented by a hardware, a software or a combination ofthem. The hardware may be implemented by a dedicated logic. The softwaremay be stored in a memory and may be implemented by an appropriateinstruction executing system (e.g., a microprocessor, a dedicated designhardware, etc.). It will be appreciated by those skilled in the art thatthe above method and system may be implemented by computer-executableinstructions and/or embedding in control codes of a processor. Forexample, the control codes may be provided by a medium such as a disk, aCD or a DVD-ROM, a programmable memory device such as read-only memory(e.g., firmware), or a data carrier such as an optical or electricsignal carrier. The positioning engine 110 and its modules may not onlybe implemented by very large scale integrated circuits or gate arrays,semiconductor devices such as logic chips, transistors, or hardwarecircuits of programmable hardware devices such as field programmablegate arrays, programmable logic devices, but may also be implemented bysoftware executed in various types of processors, or a combination ofthe above hardware circuits and software (e.g., firmware).

It should be noted that the above description of the positioning engine110 is provided for the purposes of illustration, and not intended tolimit the scope of the present disclosure. For persons having ordinaryskills in the art, modules may be combined in various ways, or connectwith other modules as sub-systems and various variations andmodifications may be conducted under the teaching of the presentdisclosure. However, those variations and modifications may not departthe spirit and scope of this disclosure. For example, the processingmodule 210, the storage module 220, the passenger interface 230, thedriver interface 240, and the database 130 may be different modules inone system, or may be combined as a single module to perform thecorresponding functions of two or more of the above modules. Forexample, the passenger interface 230 and the driver interface 240 may becombined as a single interface that can interact with the passengerterminal device 120 and the driver terminal device 140 at the same time.For example, the database 130 may be included in the positioning engine110, and all functions of the database 130 and the storage module 220may be implemented by a single storage device. All such modificationsare within the protection scope of the present disclosure.

FIG. 3 is a schematic block diagram illustrating the processing module210 of the positioning engine 110 according to some embodiments of thepresent disclosure. The processing module 110 may include an addressanalyzing unit 310, an image processing unit 320, a meetup locationprocessing unit 330, a route processing unit 340, an identificationsearching unit 350, an identification adding unit 360, and an audioprocessing unit 370. In addition, the processing module 210 may alsoinclude other units.

The address analyzing unit 310 may be configured to process addressinformation. The methods of processing the address information mayinclude analysis and/or reverse analysis of the address information.Reverse analysis may include converting address coordinates into textinformation of a location corresponding to the address coordinates.Analysis may include converting text information of a location intoaddress coordinates. The address coordinates may be, for example,longitude-latitude coordinates. The text information may be one or moreof iconic and representative names of a location, such as a common name,a street number, a name of a landmark of the location, etc. The addressanalyzing unit 310 may also send the processed address information toother units, such as the route processing unit 340, the identificationsearching unit 350, the image processing unit 320, the meetup locationprocessing unit 330, the audio processing unit 370, or the like.

The image processing unit 320 may be used to process image data (e.g.,still images, video, etc.) to obtain processed image information. Theimage data may be processed using one or more image processing methodssuch as image enhancement, image recognition, image segmentation, imagemeasurement (e.g., calculation of angles, distances, and perspectiverelations), or the like, or any combination thereof. The imageinformation identified by the image processing unit 320 may be inputtedinto the address analyzing unit 310 for search for corresponding addressinformation. The image processing unit 320 may also obtain informationfrom other units, e.g., the identification searching unit 350.

The meetup location processing unit 330 may be used to calculate andidentify one or more locations for a passenger and a driver to meetaccording to the address information provided by the passenger terminal120 and/or the driver terminal 140, and process feedback informationfrom the passenger terminal 120 and/or the driver terminal 140 about theselection, exclusion or evaluation of meetup locations in order tofilter a meetup location. The meetup location processing unit 330 maycalculate a meetup location based on the address information analyzed orreversely analyzed by the address analyzing unit 310. The meetuplocation processing unit 330 may also send the obtained meetup locationto the route processing unit 340.

The route processing unit 340 may calculate and plan a travel route forthe passenger and a driving route for the driver (e.g., a route from thedriver's location to the passenger's location) based on the positioninginformation provided by the passenger terminal device 120 and the driverterminal device 140. The route processing unit 340 may plan a route forthe driver based on meetup location information obtained from the meetuplocation processing unit 330. In some embodiments, the route processingunit 340 may use the identifications found by the identificationsearching unit 350 to plan routes. The identification searching unit 350may be used to search geographic identifications near a location. Theidentification adding unit 360 may be used to add an identification forgeographic location information. The audio processing unit 370 may beused to process audio information obtained from the passenger terminaldevice 120 or the driver terminal device 140. The audio information maybe processed using one or more audio processing methods, such as noisereduction, voice recognition, semantic recognition, characterrecognition, or the like. The audio processing unit 370 may send theidentified audio information to other units for processing, for example,the identified address information may be sent to the address analyzingunit 310.

Operations and/or processes performed by each sub-unit 310-370 of theprocessing module 210 may include operations based on logics such aslogic operation (e.g., an “AND” operation, an “OR” operation, a “NOT”operation) or operations based on numerical values. Each sub-unit310-370 of the processing module 210 may include one or more processors.The processor may be any general processor such as a programmedProgrammable Logic Device (PLD), an Application Specific IntegratedCircuit (ASIC), a microprocessor, a System on Chip (SoC), or the like.The processor may also be a Digital Signal Processor (DSP), or the like.Two or more of the sub-units 310-370 may be integrated in a singlehardware device, or two or more hardware devices which are independentfrom each other. It should be understood that the sub-units 310-370 ofthe processing module 210 can be implemented in multiple ways. Forexample, in some embodiments, the system may be implemented by hardware,software or any combination thereof. The system may be implemented byvery large scale integrated circuits or gate arrays, semiconductordevices such as logic chips, transistors, or hardware circuits ofprogrammable hardware devices such as field programmable gate arrays,programmable logic devices. The system may also be implemented bysoftware executed in various types of processors, or a combination ofthe above hardware circuits and software (e.g., firmware).

FIG. 4 is a schematic block diagram of the passenger interface 230 ofthe positioning engine 110 according to some embodiments of the presentdisclosure. The passenger interface 230 may include a passengerinformation receiving unit 410, a passenger information analyzing unit420 and a passenger information sending unit 430. The passengerinformation receiving unit 410 may receive information sent by apassenger, and may recognize, arrange and classify the information. Thecontent of the information sent by the passenger may relate to thecurrent location of the passenger determined using a positioningtechnology, a current location or pickup location inputted by thepassenger, the selection/requirement/description information of thepassenger regarding the service, the content/format/time/amount of theinformation that the passenger expects to receive, or the like, or anycombination thereof. The content of the types of information sent by thepassenger may relate to natural language text information inputted bythe passenger on a device, binary information sent by the passenger by adevice, audio information (including one or more voice inputs of thepassenger) recorded by the I/O module 620 of the passenger terminaldevice 120, image information (including still images or videos) shot bythe I/O module 620 of the passenger terminal device 120, or the like, orany combination thereof. The passenger may provide the information tothe passenger information receiving unit 410 of the passenger interface230 via the network 150. The passenger information analyzing unit 420may be used to analyze the passenger information received by thepassenger information receiving unit 410. The analysis may includearranging or classifying the passenger information in order to convertthe content of the passenger information into a format that can becalculated, processed or stored by the processing module 210 or thestorage module 220. The passenger information analyzing unit 420 mayalso be used to convert the format of information processed by theprocessing module 210 or stored in the storage module 220 into a formatthat can be accessed or selected by the passenger based on theinstructions or preferences of the passenger. The passenger informationanalyzing unit 420 may provide the format-converted information to thepassenger information sending unit 430. The passenger informationsending unit 430 may be used to send required information to thepassenger by the positioning engine 110 to the passenger via the network150. The passenger information receiving unit 410 may include a wired ora wireless receiving device. The receiving device may connect to thepassenger terminal device 120 via the network 150. Similarly, thepassenger information sending unit 430 may include a wired or a wirelesssending device. The sending device may connect to the passenger terminaldevice 120 via the network 150.

FIG. 5 is a schematic block diagram of the driver interface 240 of thepositioning engine 110 according to some embodiments of the presentdisclosure. As shown in FIG. 5, the driver interface 240 may include adriver information receiving unit 510, a driver information analyzingunit 520 and a driver information sending unit 530. The driverinformation receiving unit 510 may obtain information sent by a driverthrough the driver's device, and may recognize, arrange and classify theinformation. The content of the information sent by the driver mayrelate to the current location of the driver determined using apositioning technology. The content of information may also relate tothe driving speed, the current service condition (e.g., occupied,waiting to carry passengers, idle driving (e.g., driving without apassenger)) returned by the driver, the selection/confirmation/rejectioninformation of the driver with respect to the service request, or thelike, or any combination thereof. The content of the types ofinformation sent by the driver may relate to text information in naturallanguage and may be inputted by the driver in a device. The informationsent may also be binary information sent by the driver in a device,audio information (including one or more voice inputs of the driver)recorded by the driver terminal device 140, image information (includingstill images or videos) obtained by the driver terminal device 140, orthe like, or any combination thereof. The driver may send theinformation to the driver information receiving unit 510 of the driverinterface 240 via the network 150. The driver information analyzing unit520 may be used to analyze the driver information received by the driverinformation receiving unit 510. The analysis may include arranging orclassifying the driver information in order to convert the format of theinformation into a format that can be calculated, processed or stored bythe processing module 210 or the storage module 220. The driverinformation analyzing unit 520 may also be used to convert the format ofthe information processed by the processing module 210 or stored in thestorage module 220 into an information format that can be accessed orselected by the passenger based on the instructions or preferences ofthe driver. The driver information analyzing unit 520 may provide theformat-converted information to the driver information sending unit 530.The driver information sending unit 530 may be used to send requiredinformation to the driver by the positioning engine 110 via the network150. The driver information receiving unit 510 may include a wired orwireless receiving device. The receiving device may connect to thedriver terminal device 140 via the network 150. Similarly, the driverinformation sending unit 530 may include a wired or wireless sendingdevice. The sending device may connect to the driver terminal device 140via the network 150.

In some embodiments, FIG. 6 is a block diagram of the passenger terminaldevice 120 and the driver terminal device 140. Taking the passengerterminal device 120 as an example, the passenger terminal device 120, asshown in FIG. 6, may include a content presentation module 610, an I/Omodule 620, a positioning module 630, a communication module 640, aprocessing module 650 and a storage module 660. The content presentationmodule 610 may be used to display a graphical interface, a map interfaceand an I/O operating interface of the on-demand service application. TheI/O module 620 may be used to obtain one or more types of inputs thatthe passenger inputs into the graphical interface, the map interface andthe I/O operating interface of the on-demand service application, andoutput the information that is waiting to be provided to the user in oneor more types. The I/O module 620 may also be used to collect and recordone or more types of information such as optical and acoustic of theuser or the outside (e.g., the surrounding environment) in the form ofstill images, video, audio, etc., by a method such as signal conversion.The input and/or output may be in the form of acoustic signals, opticalsignals, mechanical vibration signals, or the like, or any combinationthereof. The positioning module 630 may be used to determine thelocation and/or motion status of the user based on one or morepositioning technologies/distance measuring technologies. Moreparticularly, the determination of the location and/or motion status ofthe user may include calculating one or more motion parameters of theuser, such as the location, a speed, an acceleration, an angularvelocity, a route, or the like. The communication module 640 may be usedto send or receive the information that is waiting to be sent orreceived by the passenger terminal device 120 by a wired or wirelesscommunication. For example, the communication module 640 may communicatewith the passenger interface 230 of the positioning engine 110, so thatthe passenger terminal device 120 may send information to thepositioning engine 110 or receive information from the positioningengine 110. In some embodiments, the passenger terminal device 120 maycommunicate with the driver terminal device 140 via the communicationmodule 640. For example, the passenger terminal device 120 and thedriver terminal device 140 may communicate with each other throughBluetooth® communication. A distance between the driver terminal device140 and the passenger terminal device 120 may be directly measured whenthe Bluetooth® of both devices are turned on. The processing module 650may be used to calculate and process information obtained by thepassenger terminal device 120. The storage module 660 may be used tostore information that is obtained, generated, calculated or processedby the I/O module 620, the positioning module 630 or the processingmodule 650.

The above description of the passenger terminal device 120 may beapplicable to the driver terminal device 140.

It should be noted that the above description of the user terminaldevice 120 or 140 is provided for the purposes of illustration, and notintended to limit the scope of the present disclosure. For personshaving ordinary skills in the art, modules may be combined in variousways, or connect with other modules as sub-systems and variousvariations and modifications may be conducted under the teaching of thepresent disclosure. However, those variations and modifications may notdepart the spirit and scope of this disclosure. For example, the contentpresentation module 610 and the I/O module 620 may be different modulesin a system, or a single module capable of achieving the functions ofboth modules. All such modifications are within the protection scope ofthe present disclosure.

FIG. 7 is a schematic diagram of the database 130. The database 130 maystore various information with multiple contents. The database 130 mayinclude a historical order database 710, a map database 720, a userdatabase 730, or the like. When the positioning engine 110 or othermodules or units need one or more types of information, the informationmay be extracted from the database 130. The historical order database710 may include the starting location of a historical order, the meetuplocation of a passenger and a driver, travel history, price of an orderservice, tip of an order service, travel time of an order, averagetravel speed, evaluation of a historical order made by a passengerand/or a driver, or the like. The map database 720 may includegeographic coordinates of artificial objects such as streets, bridges,buildings and other man-made objects, geographic coordinates of rivers,mountains, forests, wetlands and other natural features, descriptivenames or identifications of the above objects (e.g., the number of astreet, a mansion, a river, a store, etc.), image information of theabove objects, or the like. Information stored in the user database 730may include information that is related to services of the user 120 or140, such as a name of an account, a display name (e.g., a nickname), adocumentation number (e.g., a driver license, an ID card, etc.), aregistration date, a user level/priority, a credit record, a homeaddress, a business location, vehicle information, or the like.Different modules or components of a database 130 may store the aboveinformation. Multiple databases 130 may store the above information, andthe multiple databases can exchange information with each other by awired or wireless communication.

FIG. 8 is a flow chart of an exemplary process for determining a preciselocation of a passenger and a meetup location according to someembodiments of the present disclosure. It should be noted that theprecise location may include a result generated by modifying andeliminating errors in positioning information. The positioninginformation may be obtained by a positioning device or module. In someembodiments, the precise location may include other ways of expressionof the positioning information. For example, if the location inputted bya passenger is “No. 3 Haidian Street”, the positioning engine 110 maygenerate a name “Dinghao mansion” that may be more easily to beunderstood by the driver. In other embodiments of the presentdisclosure, “optimized location information” may be regarded as anotherway of expressing precise location.

As shown in FIG. 8, in step 810, the positioning engine 110 may obtaininformation relating to a current location. Step 810 may be implementedby the passenger interface 230 and/or the driver interface 240. In someembodiments, the information relating to the current location may beobtained from the passenger terminal device 120, the driver terminaldevice 140, the database 130, and/or the information source 160. Theinformation relating to the current location may include but is notlimited to a current location of a passenger, a current location of adriver, a departure location of a service, and/or a destination of theservice. The current location of the passenger and/or the currentlocation of the driver may be acquired by the positioning module 630 ofthe passenger terminal device 120, the driver terminal device 140, orthe I/O module 620. The current location of the passenger and/or thecurrent location of the driver may be location coordinates of thepassenger and the driver obtained using one or more positioningtechnologies (e.g., the Global Positioning System (GPS)). The currentlocation of the passenger and/or the current location of the driver mayalso be inputted by the passenger or the driver. In some embodiments,the information relating to the current location described above mayinclude other information about the surrounding areas of the currentlocation of the passenger and/or the driver. The other information aboutthe surrounding areas may relate to a business district, a residentialarea, a scenery, a hospital, a school, a big building, a bus station, arailway station, a metro station, an airport, abridge, a crossroads, orthe like, or any combination thereof. In some embodiments, theinformation relating to the current location may include images, videos,audios, or the like relating to the surrounding areas of the currentlocation. The information may be uploaded by the passenger terminaldevice 120 and/or the driver terminal device 140. The images, videos,and/or audios may be obtained by the I/O module 620. For example, apassenger may take photos of landmark buildings in the surrounding areasof his/her current location using a cellphone and may upload the photosto the positioning engine 110. As another example, a passenger maygenerate a voice message or a video about the situation of surroundingareas of his/her current location and send the voice or the video to thepositioning engine 110.

In step 820, after the positioning engine 110 obtains the informationrelating to the current location, the positioning engine 110 may processthe information relating to the current location. Step 820 may becompleted by the processing module 210 of the positioning engine 110.For example, in some embodiments, the positioning engine 110 maydetermine a precise location of a passenger by the address analyzingunit 310 and the image processing unit 320 of the processing module 210.The determination may be made based on the current location of thepassenger (e.g., a location obtained by GPS) and the photos of thesurrounding landmark buildings uploaded by the passenger (in step 830).The current location of the passenger may be analyzed by the addressanalyzing unit 310. The image processing unit 320 may identify one ormore names of the landmark buildings. The image processing unit 320 canthen conduct a search using the database 130 based on the name of thelandmark buildings to obtain positioning information of the landmarkbuildings. In some embodiments, the positioning engine 110 may receive avideo or an audio about the current location of a passenger. Informationincluded in the video or the audio (e.g., information relating to thecurrent location of a passenger) may be obtained by analyzing the videoand the audio. The analysis of the video and the audio may be performedby the image processing unit 320 and/or the audio processing unit 370 ofthe processing unit 210. In addition, in some embodiments, theprocessing of the information relating to the current location by theprocessing unit 210 may include obtaining other information relating tothe current location by directly searching the database 130 or thestorage module 220 based on the current location of the passenger. Insome embodiments, the processing module 210 may directly obtaininformation relating to the current location based on the currentlocation of the passenger. For example, after obtaining one or morecoordinates of the current location of the passenger, the positioningengine 110 may obtain the name of a landmark building relating to or inproximity to the coordinates of the current location of the passenger bysearching the database 130.

In step 830, the precise location may be determined by the positioningengine 110 based on the processing result of the information relating tothe current location. For example, in some embodiments, the preciselocation of a passenger may be determined by the processing module 210of the positioning engine 110 based on the current location of thepassenger and the analyzed other information relating to the currentlocation such as the name or the location of a landmark building.

It should be noted that the above description is provided for thepurposes of illustration and not intended to limit the scope of thepresent disclosure. For persons having ordinary skills in the art,various variations and modifications of positioning precise locationsmay be conducted under the teaching of the present disclosure. However,those variations and modifications may not depart the spirit and scopeof this disclosure. In some embodiments, some steps may be added oromitted. For example, the positioning engine 110 may directly obtain theprecise location of a passenger or a driver without performing steps 810and/or step 820. For example, a passenger may directly scan a quickresponse code on some buildings such as a shopping mall or an officebuilding. The quick response code may directly imply the preciselocation of a passenger. The positioning engine 110 may directly receivethe quick response code sent by the passenger. All such variations andmodifications are within the protection scope of the present disclosure.

In some embodiments, the current location of a passenger is the locationthat the passenger gets on a car. Thus, the passenger may providehis/her current location as the starting location of an order. It shouldbe noted that the location where the passenger gets on a car may be themeetup location of the passenger and the driver of the car. In someembodiments, the driver may receive the order and directly drive to thelocation. In other words, the current location of the passenger is thefinal meetup location of the driver and the passenger. In someembodiments, the current location of the passenger may not be the meetuplocation of the driver and the passenger. For example, the currentlocation of the passenger may be somewhere inside a shopping mall, andthe meetup location of the driver and the passenger may be an exit ofthe shopping mall or other places near the shopping mall. Thus, it isnecessary to determine the meetup location of the driver and thepassenger.

In step 840, the positioning engine 110 may generate one or morecandidate meetup locations. In some embodiments, when the passengerselects a starting location of an order, one or more options may beprovided to the passenger by the positioning engine 110. The options maybe the current location of the passenger, or other locations near thecurrent location of the passenger. The options may be stored in thepositioning engine 110 or obtained from the database 130 or theinformation source 160. Besides, the options may be generated based onthe order after the passenger inputs the starting location of the order.In some embodiments, the positioning engine 110 may store one or moremeetup locations relating to a location. The positioning engine 110 maystore one or more meetup locations relating to the location and thepassenger. After the starting location of the order is determined, thepositioning engine 110 may directly extract one or more meetup locationsrelating to the location and/or the passenger. Then the positioningengine 110 may send the extracted meetup locations to the passengerterminal device 120 and/or the driver terminal device 140. In someembodiments, after receiving the starting location of the order, thepositioning engine 110 may consider some additional information, such asroad conditions, weather conditions, time, or the like, or anycombination thereof, to generate some recommendation results of themeetup location that is easy for the passenger and the driver to meetwith each other. The additional information may include whether theorder is in rush hours, whether there is an event (e.g., a big game)near the inputted starting location and within the inputted time periodof the order, whether the road is in maintenance or closed, whether thepublic traffic is in normal operation, or the like, or any combinationthereof. In some embodiments, the positioning engine 110 may generateone or more candidate meetup locations by combining the startinglocation and an ending location of the order (e.g., a destination of theorder).

In step 850, the positioning engine 110 may send the generated candidatemeetup locations to the passenger terminal device 120 and/or the driverterminal device 140. In some embodiments, some preset meetup locationsstored in the system may be provided for the passenger and/or driver tochoose. The passenger terminal device 120 and/or the driver terminaldevice 140 may process the preset meetup locations. The processing ofthe preset meetup locations may include but is not limited to directlyreceiving or selecting one of the preset meetup locations as a finalmeetup location, removing one or more of the preset meetup locations,returning the remaining preset meetup locations to the positioningengine 110, or the like.

In step 860, the positioning engine 110 may receive a processing resultof the candidate meetup locations from the passenger terminal device 120and/or the driver terminal device 140. In step 870 the processing resultmay be further processed by the positioning engine 110 to generate afinal meetup location (e.g., an optimized meetup location). In someembodiments, the positioning engine 110 may evaluate the candidatemeetup locations and determine a final meetup location based on theevaluation. The evaluation may be made based on a criterion and/orcriteria such as distances between the candidate meetup locations andthe current location of the passenger, road conditions around thecandidate meetup locations, relative orientations between the candidatemeetup locations and the destination of the passenger, or the like. Instep 880, the positioning engine 110 may send the optimized meetuplocation information to the passenger terminal device 120 and/or thedriver terminal device 140 for displaying the meetup locations.

Based on the meetup location, the current location of the driver, andthe destination of a service, the route processing unit 340 of thepositioning engine 110 may generate one or more routes from the currentlocation of the driver to the meetup location and one or more routesfrom the meetup location to the ending location of an order (e.g., thedestination of the service). The route generation described above may bebased on a certain route planning algorithm, e.g., the shortest routeplanning algorithm. The shortest route planning algorithm may includeDijkstra algorithm, SPFA algorithm, Bellman-Ford algorithm, Johnsonalgorithm, Floyd-Warshall algorithm, or the like, or any combinationthereof. The route planning algorithm may relate to factors such as roadconditions, weather conditions, time, or the like, or any combinationthereof. For example, the factors may include rush hours, a location ofa big game or event, road maintenance or closure condition, whether thepublic traffic is in normal operation, or the like, or any combinationthereof may be considered. The positioning engine 110 may send theroutes to the passenger terminal device 120 and/or the driver terminaldevice 140 via the passenger interface 230 and/or the driver interface240. The passenger terminal device 120 and/or the driver terminal device140 may display the routes.

According to the meetup location and the current location of the driver,the processing module 210 of the positioning engine 210 may calculatedistance between the current location of the driver and the meetuplocation. The calculation may be made by a calculating unit (not shownin FIG. 3) of the processing module 210. The distance between thecurrent location of the driver and the meetup location may include astraight-line distance, a road distance, a travel distance, or the like.Method of measuring the distance may be similar to the distancemeasuring methods described elsewhere in the present disclosure and arenot further described here. The positioning engine 110 may send thedistance to the passenger terminal device 120 and/or the driver terminaldevice 140 through the passenger interface 230 and/or the driverinterface 240 via the network 150. The passenger terminal device 120and/or the driver terminal device 140 may display the distanceinformation.

It should be noted that the above description of determining the preciselocation and the meetup location is merely illustrative, and notintended to limit the scope of present disclosure. For persons havingordinary skills in the art, various variations and modifications ofdetermining the precise location and the meetup location may beconducted under the teaching of the present disclosure. However, thosevariations and modifications may not depart the spirit and scope of thisdisclosure.

FIG. 9 is a flow chart of an exemplary process for generating optimizedlocation information by the positioning engine 110 according to someembodiments of the present disclosure. In step 910, the positioningengine 110 may obtain original location information from the passengerterminal device 120. The original location information may be geographiccoordinate information related to the location of the passenger terminaldevice 120 obtained by the positioning module 630 of the passengerterminal device 120. For example, the geographic coordinate informationmay be longitude-latitude coordinates, an altitude, or the like. Thepositioning module 630 may obtain information of the passenger using oneor more positioning technologies. The information of the passenger mayinclude a current location, a motion state, a speed, or the like. Theone or more positioning technologies may be selected from GlobalPositioning System (GPS) technology, Global Navigation Satellite System(GLONASS) technology, Beidou navigation system technology, Galileopositioning system (Galileo) technology, Quasi-Zenith Satellite System(QAZZ) technology, base station positioning technology, Wi-Fipositioning technology, various positioning and speed measuringtechnologies installed on vehicles, or the like. Because of the innermeasurement error of the positioning module 630 and the limitation ofprecision of the positioning technologies, the original locationinformation may not be precise, and may not meet the requirement of aprecise service.

For example, basic positioning information of the current location maybe obtained using a Wi-Fi positioning technology. A wireless router mayhave a globally unique Media Access Control (MAC) address. Generally,the wireless router may not move in a period of time. Once the Wi-Fifunction of the passenger terminal device 120 is turned on, thepassenger terminal device 120 may scan and collect signals of nearbyrouters to obtain MAC addresses broadcasted by the routers. Thepassenger terminal device 120 may send data (including the MACaddresses) to the positioning engine 110. The data may represent therouters. The positioning engine 110 may search the geographic locationsof the routers in the database 130 based on the received data. Then thepositioning engine 110 may calculate the location of the passengerterminal device 120 based on the strength of the obtained signals ofdifferent routers. The strength of the signals of different routers maybe provided by the passenger terminal device.

Alternatively, basic positioning information of the current location maybe obtained using abase station positioning technology. Thecommunication module 640 of the passenger terminal device 120 maymeasure downlink pilot signals of different base stations and obtainTime of Arrival (TOA) or Time Difference of Arrival (TDOA) of thedownlink pilot signals of different base stations. The measured signalsmay be sent to the positioning engine 110 by the passenger terminaldevice 120 via the network 150. According to the measured results andthe coordinates of the base stations, the processing module 210 of thepositioning engine 110 may calculate the original location informationof the passenger terminal device 120. In some embodiments, theprocessing module 210 may calculate the original location informationusing trigonometry.

Upon or after obtaining the original location information of thepassenger terminal device 120, the positioning engine 110 may obtain theinformation relating to the original location from the storage module220, the database 130, and other information sources 160 in step 920.The positioning engine 110 may obtain the information relating to theoriginal location via the network 150. According to some embodiments ofthe present disclosure, the information relating to the originallocation may be image information received from the passenger terminaldevice 120. The image information may include still image informationand/or video information.

According to some embodiments of the present disclosure, the informationrelating to the original location may include a picture or video of abuilding or a signpost with a particular identification. For example,the information relating to the original location may be one or morepictures or videos of a building near the current location with aparticular identification. The information relating to the originallocation may also be multiple pictures or videos of multiple buildingsnear the current location.

According to some embodiments of the present disclosure, the informationrelating to the original location may be the identification informationthat may be searched by the identification searching unit 350 of theprocessing module 210 in the map database 720 of the database 130 nearthe original location. The identification searching unit 350 may searchidentifications near the original location in the map database 720.According to some embodiments, the identification searching unit 350 maysearch identifications in a preset range from the original location.

In step 930, the positioning engine 110 may process the originallocation information and the information relating to the originallocation obtained in step 910 and step 920. In some embodiments, step930 may include identifying a building name from a picture or a video ofthe building based on a particular identification of the building. Forexample, after the positioning engine 110 obtains the picture or thevideo of the building, the image processing unit 320 of the processingmodule 210 may identify the basic features (or identifications) of thebuilding using image recognition technology. The positioning engine 110may retrieve information stored in the map database 720 of the database130 and search image information of buildings. Then a building withmatching features may be identified and geographic location informationcorresponding to the building may be obtained. According to someembodiments of the present disclosure, if the positioning engine 110finds multiple buildings that match the features in the still image orvideo using an image recognition technology, B1, B2, . . . Bn (n≥1) maybe used to mark the name of the multiple buildings recognized in the mapdatabase 720 of the database 130. According to some embodiments of thepresent disclosure, the image processing unit 320 of the processingmodule 210 of the positioning engine 110 may calculate information(including a distance between a location where the image is captured anda building in a picture/video, an angle of capturing the image and thedirection of capturing the image, or the like) using an image measuringtechnology.

In step 940, the processing module 210 may generate optimized locationinformation based on the processed information of the original locationand information relating to the original location. According to someembodiments of the present disclosure, the processing module 210 mayobtain precise location information of the location where the image iscaptured and generate optimized location information based on theinformation of the original location and image information after theimage recognition and/or the image measuring. By processing informationrelated to the original location in step 930, the processing module 210may identify a building in an image. Also, the processing module 210 mayobtain positioning information of the building by searching in the mapdatabase 720 of the database 130. For example, based on recognizedbuilding names B1, B2, . . . Bn (n≥1), geographic coordinates (P1, P2, .. . Pn) (n≥1) of the buildings may be obtained by searching the addressinformation database. For example, assuming that original positioninginformation of a current location is P0 and obtained positioninginformation of buildings is P1, P2, . . . Pn (n≥1), distances D01, D02,. . . D0n between P0 and P1, P2, . . . Pn (n≥1) may be calculatedrespectively. By ranking D01, D02, . . . D0n from the smallest to thelargest, the smallest value D0x may be found. D0x may correspond to thepositioning information (Px) of a building that is in closest proximityto the current location. Px may be designated as the precise positioninginformation of the current location.

In some embodiments, according to the distance between the locationwhere the image is captured and a building in a picture/video, an angleof capturing the image and the direction of capturing the image, or thelike obtained in step 930, the image processing unit 320 of theprocessing module 210 may calculate the distance between the locationwhere the image is captured and the building. Then the processing module210 may calculate precise geographic coordinates of the location wherethe image is captured and generate optimized location information bycombining the distance and the precise geographic coordinate of thebuilding in the database 130. In some embodiments, the positioningengine 110 may generate optimized location information by addingsearched identifications into the original location information by theidentification adding unit 360 of the processing module 210.

Based on the meetup location, the current location of the passenger andthe ending location of an order (e.g., the destination of the service)described above, the route processing unit 340 of the positioning engine110 may generate one or more routes from the current location of thedriver to the meetup location, and one or more routes from the meetuplocation to the ending location of an order. The route planning methodsand designing factors thereof may be found elsewhere in the presentdisclosure, and will not be further described here. The positioningengine 110 may send the routes to the passenger terminal device 120and/or the driver terminal device 140 via the passenger interface 230and/or the driver interface 240. The routes may be displayed on thepassenger terminal device 120 and/or the driver terminal device 140.

It should be noted that the above description of generating theoptimized location information is merely illustrative, and not intendedto limit the scope of present disclosure. For persons having ordinaryskills in the art, various variations and modifications of generatingthe optimized location information may be conducted under the teachingof the present disclosure. However, those variations and modificationsmay not depart the spirit and scope of this disclosure. In someembodiments, some steps such as step 920 in FIG. 9 described above maybe omitted. The positioning engine 110 may directly obtain the optimizedlocation information based on the original location information obtainedin step 910 without performing step 920.

FIG. 10 is a flow chart of an exemplary process for generating optimizedlocation information according to some embodiments of the presentdisclosure. When a passenger confirms a car-hailing order, the startinglocation of the order be selected. The selection may be made by manuallyinputting or choosing a current location, a location of getting on a caror a destination. The selection may also be made by directly localizingthe starting location and the ending location of the order usingpositioning technologies such as GPS. In step 1010, the addressinformation of the order may be obtained by the positioning engine 110.The process of acquiring the order information may be completed by thepassenger interface 230. When the passenger provides or chooses thecurrent location, a meetup location, or the destination, the addressinformation of the order may be analyzed by the positioning engine 110.The address information may include a starting address and/or adestination address, or the like. For example, the starting address andthe destination address may be the starting location and ending locationof the order. The process of analyzing the address information of theorder may be completed by the address analyzing unit 310 of theprocessing module 210. In step 1020, longitude and latitude informationcorresponding to the address information may be obtained by analyzingthe address information.

In step 1030, the positioning engine 110 may search for identificationsin a preset range from a location with the longitude and latitudecorresponding to the address information. The search for theidentifications may be performed by the identification searching unit350 of the processing module 210. The preset range may be set as needed.For example, the range may be set greater than, equal to, or less than500 meters. In some embodiments, the preset range may be 1 to 200meters, 200 to 300 meters, 300 to 400 meters, or 400 to 500 meters. Insome embodiments, the preset range may be 1 to 50 meters, 50 to 100meters, 100 to 150 meters, or 150 to 200 meters. In some embodiments,the preset range may be 10 meters, 20 meters, 30 meters, 40 meters, 50meters, 60 meters, 70 meters, 80 meters, 90 meters, 100 meters, or thelike. In some embodiments, the setting of the preset range may bedetermined based on the location corresponding to the longitude andlatitude information. For example, different locations may havedifferent preset ranges.

The identifications may be business districts, residential areas,sceneries, hospitals, schools, big buildings, bus stations, railwaystations, metro stations, airports, bridges, crossroads, or the like, orany combination thereof. In some embodiments, the search for theidentifications may be based on a sequence of priority levels. Forexample, each identification may correspond to a priority level. In someembodiments, for example, a business district may correspond to thehighest priority. Bridges or crossroads may correspond to the secondhighest priority. Roads may correspond to the third highest priority. Ifa business district is found during the search, other identificationsmay no longer be searched, or search results including otheridentifications may be omitted. The found business district may bedesignated as the identification. If the business district is not found,a bridge or a crossroad within the preset range from the longitude andlatitude of the address information may be searched. If the bridge orcrossroad is found during the search, it may be designated as theidentification. If the bridge or crossroad is not found, a road withinthe preset range may be searched. If a road is found during the search,it may be designated as the identification. It should be noted that theabove description of priority levels used in the searches of theidentifications is merely illustrative and not intended to limit thescope of protection of the present disclosure.

A search sequence (e.g., an order in which searches for the features areconducted) may be preset by the positioning engine 110, a user, the mapused by the positioning engine 110 or a user, or any combinationthereof. For example, a search sequence set by the user may have thehighest priority. A search sequence set by the map may have the secondhighest priority. A search sequence set by the positioning engine 110may have the lowest priority. The search sequence set by the positioningengine 110 may be automatically updated based on historical data. Forexample, the search sequence set by the positioning engine 110 may beupdated based on factors such as the number or frequency of accepting orrejecting the recommended identifications. The search sequence may alsobe updated based on one or more other factors. The other factors may bea combination of a situation whether an identification is accepted orrejected and factors such as time, weather, or the like when theidentification is accepted or rejected. The search sequence of theidentifications may be selected based on factors such as time, weather,or the like. For example, a school may be preferably designated as anidentification around the dismissal time. As another example, a businessdistrict may not be preferably designated as an identification innon-business hours.

The identifications relating to longitude and latitude may be stored inthe on-demand service system 105 or the positioning engine 110 inadvance. The identifications may also be generated based on an orderafter a passenger inputs the starting location of the order. In someembodiments, one or more identifications relating to a certain place maybe stored in the on-demand service system 105 or the positioning engine110. After determining the starting location of an order of a passenger,the positioning engine 110 may extract one or more identifications basedon the above identification searching process and certain rules. In someembodiments, after obtaining the starting location of an order, thepositioning engine 110 may collect geographic information within apreset range from the starting location and then obtain theidentifications. The geographic information may include but is notlimited to a surrounding building, a natural facility, a road, abridge,or the like. The identifications and related information ofidentifications and the longitude and latitude may be obtained by thepositioning engine 110. The related information and the preset range ofthe identifications and the longitude and latitude may be stored in thedatabase 130, the storage module 220 of the positioning engine 110, orother units and modules with a storing function of the system.

In step 1040, the positioning engine 110 may add the searchedidentifications into the corresponding address information of an order.The process of adding the identifications may be implemented by theidentification adding unit 360 of the processing module 210. The addressinformation with the added identifications may be sent to the driverterminal device 140, and may be easily recognized by the driver. Whenthe driver is accepting the order, it is easy to determine whether thecar-hailing order is an expected one. This may avoid wasting orderresources.

It should be noted that the above description of generating theoptimized location information is merely illustrative, and not intendedto limit the scope of present disclosure. For persons having ordinaryskills in the art, various variations and modifications of generatingthe optimized location information may be conducted under the teachingof the present disclosure. However, those variations and modificationsmay not depart the spirit and scope of this disclosure. In someembodiments, some steps in the flow chart described above may beomitted. For example, if the address information of an order obtained bythe positioning engine 110 from the passenger terminal device 120 isrepresented in the form of latitude and longitude information, step 1020may be skipped and step 1030 may be directly performed. The positioningengine 110 may take the longitude and latitude information as a centerand search identifications within a preset range from the center. Insome embodiments, the address information represented in the form ofaddress name may not be analyzed. The identifications in the presetrange of the address name may be directly obtained.

FIG. 11 is a flow chart of an exemplary process for generating optimizedlocation information according to some embodiments of the presentdisclosure. In some embodiments, positioning devices or modules of thepassenger terminal device 120 may obtain an approximate positioninglocation. A location customized and inputted by a passenger may not beprecise as well. Therefore, in order to make a driver more easilyidentify the location, more precise location information or moredetailed description of address information may be needed. In step 1110,the positioning engine 110 may obtain an order including the addressinformation sent by a passenger. The order may be obtained by thepassenger interface 230. The above address information may include butis not limited to a current location of the passenger, a departurelocation of the passenger, a destination of the passenger, or the like,or any combination thereof. In some embodiments, the current location ofthe passenger is the starting location of the passenger. Forms of theabove address information may include text, image, audio, video, or thelike, or any combination thereof.

After the positioning engine 110 receives the order of the passenger, instep 1120, the order may be sent to a driver terminal device 140. Next,in step 1130, the positioning engine 110 may obtain a response to theorder from the driver terminal device 140. The driver interface 240 maysend the order to the driver terminal device 140 and may obtain aresponse to the order from the driver terminal device 140. It should benoted that the positioning engine 110 may perform other processes beforesending the order to the driver terminal device 140. For example, insome embodiments, the information obtained by the positioning engine 110may be further processed. In some embodiments, the passenger analyzingunit 420 of the passenger interface 230 may analyze the order that issent by the passenger and obtained by the passenger informationreceiving unit 410. The above analyzing operation may include arrangingor classifying the passenger information (e.g., the order informationsent by the passenger) so that the passenger information may beconverted into a format that can be calculated, processed, or stored. Insome embodiments, the order obtained by the positioning engine 110 maybe in the form of audio. The audio processing unit 370 of the processingmodule 210 of the positioning engine 110 may analyze the audio of theorder and generate order information in the form of text. Thepositioning engine 110 may send the order information to a driver by thedriver interface 240. In some embodiments, an order obtained by thepositioning engine may be in the form of text, video or image. Theprocessing module 210 of the positioning engine 110 may convert theorder into order information in the form of voice messages and send theorder information to a driver.

In some embodiments, a response to an order made by a driver may includea requirement of the order such as a requirement of precise locationinformation of the order. In some embodiments, an order sent to a driverby the positioning engine 110 may contain unclear information. Somesmart positioning technologies can only obtain an approximatepositioning location, but not a very precise location. For example,based on a certain positioning technology, the passenger terminal device120 may be positioned to a certain market, but not to a particularlocation in the market. For example, a particular exit, floor, room maybe difficult to be determined. Therefore, in some cases, it may bedifficult for a driver to find a passenger only based on a simpleaddress obtained after positioning. Thus, a more precise location isneeded.

In step 1140, after obtaining a response of a driver to an order by thedriver interface 240, the positioning engine 110 may send at least onedetailed location to a passenger. The detailed location may be somelocation(s) within a preset range from the starting location of theorder or the current location of the passenger as a center. The presetrange may be less than, equal to, or greater than 100 meters. In someembodiments, the preset range may be set less than, equal to, or greaterthan 50 meters. In some embodiments, the preset range may be set lessthan, equal to, or greater than 40 meters. In some embodiments, thepreset range may be set less than, equal to, or greater than 30 meters.In some embodiments, the preset range may be set less than, equal to, orgreater than 20 meters. In some embodiments, the preset range may be setless than, equal to, or greater than 10 meters. The detailed locationmay be displayed to the passenger as a list for the passenger to choose.

The detailed location generated by the positioning engine 110 is a moredetailed description of the address location in the order that can bemore easily understood and recognized by the driver. In someembodiments, the detailed location may be stored in the system. Thesystem may store one or more detailed locations relating to a certainlocation. After determining an order of a passenger, the system mayextract one or more detailed locations relating to the starting locationof the order directly based on the relation between the one or moredetailed locations and the starting location. The detailed locations maybe stored in the database 130, the storage module 220, or other modulesor units with a storing function of the on-demand service system 105. Insome embodiments, after obtaining the order, the on-demand servicesystem 105 may collect information within the preset range from thestarting location of the order to obtain the detailed locations.

In step 1150, the positioning engine 110 may obtain a response to thedetailed locations by the passenger. In some embodiments, the responseto the detailed locations may include directly selecting one of thedetailed locations and sending the selected location to the positioningengine 110. In some embodiments, the response to the detailed locationsmay include selecting multiple detailed locations and sending theselected locations to the positioning engine 110. In some embodiments,the response to the detailed locations may include removing one or moredetailed locations provided by the positioning engine 110. It should benoted that the above description of the processing of the detailedlocations sent by the positioning engine 110 is merely illustrative andnot intended to limit the present disclosure. In some embodiments, otherprocessing methods may also be included.

In step 1160, the positioning engine 110 may send a processed result ofthe detailed location generated by the passenger to the driver terminaldevice 140 via the driver interface 240. Based on the above result, thedriver may determine the particular location of the passenger, or alocation for getting on a car, e.g., a meetup location.

It should be noted that the above description of generating theoptimized location information is merely illustrative, and not intendedto limit the scope of the present disclosure. For persons havingordinary skills in the art, various variations and modifications ofgenerating the optimized location information may be conducted under theteaching of the present disclosure. However, those variations andmodifications may not depart the spirit and scope of this disclosure. Insome embodiments, other steps may also be added. For example, afterobtaining a processed result of the detailed location generated by apassenger, the positioning engine 110 may further process the result. Insome embodiments, a processed result of a passenger obtained by thepositioning engine 110 may include multiple detailed locations. Thepositioning engine 110 may rate the multiple detailed locations andselect a result with the highest rating as a final result and sent thefinal result to a driver. The above processing may also includeconverting the format of the processing result. The converting methodsmay include text-to-voice, picture-to-voice, video-to-voice,voice-to-text, voice-to-text, voice-to-picture, or the like, or anycombination thereof. In some embodiments, the response of a driver to anorder may include directly obtaining the order without performing othersteps. For example, step 1140, step 1150, and step 1160 may be omitted.These modifications and variations are still within the scope of theabove description.

FIG. 12 is a flow chart of an exemplary process for precise positioningby the passenger terminal device 120 according to some embodiments ofthe present disclosure. After a passenger sends a service order request,a driver may quickly obtain an approximate location of the passenger.But the location may not be precise enough. For example, the passengermay be in a large building with multiple exits or in an unfamiliarplace, such that it may hard for the passenger to describe his/herprecise location. In addition, a conventional positioning technology maynormally have a certain deviation. Thus, it may be hard for the driverto find the passenger only based on a simple address obtained using thepositioning technology. In some embodiments, a driver and a passengercannot find each other even if they are very close. In step 1210,information relating to a current location may be collected by thepassenger terminal device 120. The information relating to the currentlocation may be geographic coordinate information, the descriptive nameof a starting location, information in other forms such as image (stillimages or videos) information, other information relating to a preciselocation, or the like. The geographic coordinate information may beobtained by the positioning module 630 of the passenger terminal device120, or generated by a map interface displayed by the contentpresentation module 610 operated by the passenger. The description nameof the starting location may be inputted or selected by the passenger.The other forms of information may be collected or recorded by thepassenger through the passenger terminal device 120. For example, theimage information may be collected by the I/O module 620 of thepassenger terminal device 120. In some embodiments, other informationrelating to a precise location may be in the form of a bar code or aquick response code. The bar code or the quick response code may beposted on a precise location and related to a precise geographiccoordinate and/or the description name of a starting location.

In step 1220, after collecting the information relating to the currentlocation, the passenger terminal device 120 may send the information tothe positioning engine 110. The information relating to the currentlocation may constitute the order information of a transportationservice request. According to some embodiment of the present disclosure,the passenger terminal device 120 may access the network 150 via anetwork access device (e.g., cellular network base stations 150-1, 150-2or wireless network access points) and send the collected informationrelating to the current location to the positioning engine 110.

In step 1230, the passenger terminal device 120 may obtain at least onedetailed location sent by the positioning engine 110. The positioningengine 110 may respond to a response of the driver terminal device 140with respect to a transportation service request order. The detailedlocation may be partially based on the information relating to thecurrent location sent by the passenger terminal device 120. The detailedlocation may include a meetup location (e.g., the meetup location may bea location where the passenger gets on the car) that is recommended tothe passenger by the positioning engine 110 or a meetup location that isprovided to the passenger by the driver terminal device 140 through thepositioning engine 110. The meetup location may be stored in thedatabase 130 or provided by the information source 160. In someembodiments, the passenger terminal device 120 may obtain a detailedlocation in step 1230. The detailed location may be designated as theprecise location of the passenger by the positioning engine 110.Alternatively, the passenger terminal device 120 may use the contentpresentation module 610 to display the obtained detailed location. Theobtained detailed location may be displayed in the form of text, map,image, or the like.

In step 1240, after receiving the detailed locations sent by thepositioning engine 110, the passenger may select one of the detailedlocation(s) by the passenger terminal device 120. The detailed locationssent by the positioning engine 110 may be displayed by the contentpresentation module 610 of the passenger terminal device 120. Thepassenger may select one detailed location of the displayed detailedlocations by the I/O module 620. It can be understood that the passengermay select more detailed locations.

In step 1250, after obtaining a selection of the detailed locations ofthe passenger by the I/O module 620, the passenger terminal device 120may send the selection to the positioning engine 110.

It should be noted that some steps in the flow chart may be omitted orskipped. For example, after obtaining the detailed locations sent by thepositioning engine 110 in step 1230, the process may end. The passengerterminal device 120 may not need to wait for the selection orconfirmation of the passenger.

FIG. 13 is a flow chart of an exemplary process for processing a meetuplocation by the driver terminal device 140 according to some embodimentsof the present disclosure. In step 1310, the driver terminal device 140may obtain information of candidate meetup location sent by thepositioning engine 110. The driver terminal device 140 may obtain theinformation of candidate meetup location upon or after obtaining atransportation service request. The information of candidate meetuplocation may constitute a candidate meetup location set. Elements in theset may relate to a single meetup location, or multiple meetuplocations, such as a list of meetup locations. The meetup locationinformation may include geographic coordinate information, a descriptionand/or name of the meetup location, or types of the meetup location. Forexample, the types of the meetup location may be “shop,” “restaurant,”“public facility,” “residential area,” or the like. After obtaining thecandidate meetup location information, the driver device 140 may displaythe information using the content presentation module 610. Theinformation may be displayed using one or more displaying methods, suchas representing the geographic coordinate information of the meetuplocation information in the form of by displaying one or more icons orrepresenting the description and/or name and/or type of the above meetuplocation information in the form of text (normal or multimedia).

In step 1320, the driver device 140 may obtain processed data related tothe displayed candidate meetup location information (e.g., a processedcandidate meetup location) by the driver via the I/O module 620. Theprocessed data related to the candidate meetup location set may begenerated by processing the candidate meetup location set by the servicerequester. The processing may include selecting, removing, andevaluating one or more candidate meetup locations. The above evaluationmay be performed in the form of rating in text or scoring. The aboveevaluation may represent preference of a driver for one or morecandidate meetup locations. The processing of the displayed candidatemeetup location may also include updating the candidate meetup locationinformation. According to some embodiments, the above updating may beadding one or more candidate meetup locations by the driver terminaldevice 140, modifying one or more candidate meetup locations by thedriver terminal device 140, or the like. The above method of theprocessing of the displayed candidate meetup location may be a methodthat the driver deletes, adds, or moves the candidate meetup locationicons on the map interface by the I/O module 620. Also, the above methodof the processing of the displayed candidate meetup location may be amethod that the driver deletes, adds, or modifies the description andtype of the candidate meetup location.

In step 1330, the driver terminal device 140 may send the processedmeetup location information to the positioning engine 110 via thecommunication module 640 for calculating and processing.

In step 1340, the driver terminal device 140 may obtain optimized meetuplocation information from the positioning engine 110. The optimizedmeetup location information may be partially/completely based on theprocessing of the candidate meetup location information of the driver,the processing of the candidate meetup location information of thepassenger, or information from the information source 160, or anycombination of multiple methods of processing and/or information.

Preferably, the content presentation module 610 of the driver terminaldevice 140 may display the obtained optimized meetup locationinformation. In some embodiments, the content presentation module 610may display the optimized meetup location information in the form of bydisplaying one or more icons on a map interface. In some embodiments,the content presentation module 610 may display the description of themeetup location near the icon representing the optimized meetup locationinformation. In some embodiments, the content presentation module 610may display the current location information of the driver on a mapinterface at the same time.

It should be noted that one or more steps of the flowchart describedabove may be omitted. According to some embodiments, steps 1320, 1330,and 1340 may be skipped. For example, the driver terminal device 140 mayobtain candidate meetup location information from the positioning engine110 without performing a process on the candidate meetup location andsubsequent processes.

FIG. 14 is a flow chart of an exemplary process for determining a meetuplocation by a passenger according to some embodiments of the presentdisclosure. In some embodiments, the current location of a passenger isthe meetup location (e.g., the meetup location may be the location wherethe passenger gets on the car) of the passenger. In some embodiments,the current location of a passenger is not the meetup location of thepassenger. In some other embodiments, the meetup location may bereferred to as a pickup point, a starting location of an order, adeparture location, or the like.

In step 1410, information relating to a location may be acquired by thepassenger terminal device 120. The information relating to the locationmay include the current location of the passenger, the starting locationof an order, the ending location of an order, or the like, or anycombination thereof. In some embodiments, the process of acquiring theinformation relating to the location may be implemented by thepositioning module 630 of the passenger terminal device 120. Thepositioning module 630 may determine the location of the passenger usingone or more positioning technologies. The positioning technologies mayinclude a Global Positioning System (GPS) technology, a GlobalNavigation Satellite System (GLONASS) technology, a Beidou navigationsystem technology, a Galileo positioning system (Galileo) technology, aQuasi-Zenith Satellite System (QAZZ) technology, a base stationpositioning technology, a Wi-Fi positioning technology, or the like, orany combination thereof. In some embodiments, the process of acquiringthe information relating to the location may be implemented by the I/Omodule 620 of the passenger terminal device 120. The names of thecurrent location, the starting location, and the ending location of anorder may be inputted by a passenger. The method of performing of theinformation relating to the location may include but is not limited toin a text format, an image format, a video format, an audio format, orthe like, or performing the information relating to the location in anycombination thereof. It should be noted that the passenger terminaldevice 120 may obtain other information. The other information mayinclude but is not limited to a passenger's name, contact information,planned pickup time, or the like, or any combination thereof. Theprocess of acquiring the other information may be implemented by the I/Omodule 620. After obtaining the information relating to the location,the processing module 650 of the passenger terminal device 120 mayprocess the obtained information relating to the location. Theprocessing of the obtained information relating to the location mayinclude but is not limited to format converting, or the like. Thepassenger terminal device 120 may store the obtained informationrelating to the location and other information in the storage module660, the server 130, or other modules and units of the system that canstore data.

Next, in step 1420, the passenger may send the processed or unprocessedinformation relating to the location and/or the other information to theon-demand service system 105 or the positioning engine 110. The processof sending the information relating to the location and/or the otherinformation may be conducted simultaneously or in a particular sequence.In some embodiments, information relating to the location obtained fromthe passenger terminal device 120 may include the current location andthe destination of a passenger. The passenger may designate the currentlocation as a meetup location. In some embodiments, the passenger maysimultaneously send the current location, the meetup location, and thedestination. In some embodiments, the on-demand service system 105 orthe positioning engine 110 may generate one or more candidate meetuplocations for a passenger to choose from based on the informationrelating to the location sent by the passenger terminal device 120. Thenumber of the candidate meetup locations may be arbitrary, for example,one, two, three, four, five, six, or any other number.

In step 1430, the passenger terminal device 120 may obtain the candidatemeetup location sent by the on-demand service system 105 or thepositioning engine 110. Step 1430 may be performed by the communicationmodule 640 of the passenger terminal device 120. The candidate meetuplocation may be displayed to the passenger in the form of a list. Insome embodiments, the priority of each candidate location may bedifferent, e.g., each candidate location having its correspondingpriority. The candidate location with the highest priority may beregarded as the optimized meetup location by the on-demand servicesystem 105 or the positioning engine 110. The candidate meetup locationsobtained by the passenger may be ranked from high to low or from low tohigh based on the priority of the locations. In some embodiments, thepriority of the candidate meetup locations may be the same. And thedisplayed candidate meetup location is not ranked based on the priority.

After the passenger terminal device 120 obtains the candidate meetuplocation sent by the on-demand service system 105 or the positioningengine 110, the candidate meetup location information may be processedin step 1440. And the processed candidate meetup location informationmay be sent to the on-demand service system 105 or the positioningengine 110 in step 1450. The processing of the candidate meetup locationinformation may be implemented by the processing module 650 of thepassenger terminal device 120. The process of sending the processedcandidate meetup location information to the on-demand service system105 or the positioning engine 110 may be implemented by thecommunication module 640. The processing of the candidate meetuplocation information may include but is not limited to directlyselecting one of the candidate meetup locations as the final meetuplocation by the passenger, selecting or removing one or more of thecandidate meetup locations. In some embodiments, a passenger may thinkthat some of the candidate meetup locations sent by the on-demandservice system 105 or the positioning engine 110 may be relativelyinconvenient based on the current location of the passenger. Thus, thepassenger may directly delete those inconvenient candidate meetuplocations using the passenger terminal device 120. In some embodiments,a passenger may think that one or more of the candidate meetup locationssent by the on-demand service system 105 or the positioning engine 110are acceptable. Thus, the passenger may choose those candidate meetuplocations using the passenger terminal device 120.

After the passenger terminal device 120 sends the processed candidatemeetup location information to the on-demand service system 105 or thepositioning engine 110, the on-demand service system 105 or thepositioning engine 110 may further process the processed candidatemeetup location information. Optimized meetup location information maybe generated and sent to the passenger terminal device 120. In step1460, the passenger terminal device 120 may obtain the optimized meetuplocation information. Step 1460 may be performed by the communicationmodule 640 of the passenger terminal device 120. It should be noted thatthe “optimized meetup location” herein may be described as an optimalmeetup location, a final meetup location, a starting location of anorder, or the like. All those descriptions represent a place where thedriver and the passenger may finally meet.

It should be noted that the above description of the process ofgenerating meetup locations is merely illustrative, and not intended tolimit the scope of the present disclosure. For persons having ordinaryskills in the art, various variations and modifications of generatingmeetup locations may be conducted under the teaching of the presentdisclosure. However, those variations and modifications may not departthe spirit and scope of this disclosure. In some embodiments, some stepsof the process of generating the meetup locations may be omitted. Forexample, information relating to a location sent to the on-demandservice system 105 or the positioning engine 110 by the passengerterminal device 120 may be accepted by the on-demand service system 105or the positioning engine 110. The meetup location or the currentlocation of a passenger obtained by the passenger terminal device 120may be designated as the final meetup location. The final meetuplocation may be a location where the driver and the passenger want tomeet. Thus, step 1430 to step 1460 may be omitted. As another example,the on-demand service system 105 or the positioning engine 110 maygenerate one candidate meetup location, and the candidate meetuplocation may be sent to the driver and the passenger as the final meetuplocation. In this case, the driver and the passenger may not need toperform any further operation. For the passenger terminal device 120,step 1440, step 1450 and step 1460 may not need to be performed afterperforming step 1430. Those modifications and variations are stillwithin the scope of the above description. In addition, the abovedescription of the process of determining meetup locations by thepassenger terminal device 120 is merely illustrative. Some steps (suchas storing) are not shown in the flow chart. However, it does notindicate that the intermediate results and the final results of the flowchart described above are not stored. In some embodiments, some or allof the intermediate results and the final results of the flow chartdescribed above may be stored. The storing location may include but notlimited to the storage module 660 of the passenger terminal device 120,the database 130, the storage module 220 of the positioning engine 110,or other units and modules of the on-demand service system 105 that canstore data.

FIG. 15 is a flow chart of an exemplary process for determining a meetuplocation according to some embodiments of the present disclosure. Instep 1510, the positioning engine 110 may obtain location informationsent by an order sender (e.g., the passenger). Step 1510 may beperformed by the passenger interface 230. The location information mayinclude but is not limited to a current location of the passenger, astarting location of the order, an ending location of the order, or thelike, or any combination thereof. The positioning engine 110 may alsoobtain other information via the passenger interface 230. Thedescription about the other information is similar to the descriptionselsewhere in the present disclosure.

After the positioning engine 110 obtains the location information of thepassenger, the positioning engine 110 may search for historical ordersin step 1520. The historical orders may be stored in the database 130,the storage module 220 of the positioning engine 110, or other modulesor units of the on-demand service system 105 that can store data. Insome embodiments, the historical orders may include one or more orderswithin a given time period. In some embodiments, the historical ordersmay include one or more orders within a preset threshold. The presetthreshold may be a distance between a starting location of thehistorical order and the current location of the passenger. In someembodiments, the historical order may include one or more orders withina preset threshold in a given time period. The given time period mayinclude one day or multiple days, one week or multiple weeks, one monthor multiple months, or the like. In some embodiments, the given timeperiod may be two months. In some embodiments, the given time period maybe a random value or a fixed value. In some embodiments, the given timeperiod may be determined based on experience or experimental data. Insome embodiments, the given time period may be related to a passengeraccount that sends an order. In some embodiments, the given time periodmay be related to a driver account that obtains the order. In someembodiments, the given time period may be related to particular locationinformation, for example, the given time period may be differentaccording to different locations. The above preset threshold may bedetermined based on experience or experimental data. The presetthreshold may be greater than, equal to, or less than 500 meters. Insome embodiments, the preset threshold may be 1 meter to 200 meters, 200meters to 300 meters, 300 meters to 400 meters, or 400 meters to 500meters. In some embodiments, the preset threshold may be 1 meter to 50meters, 50 meters to 100 meters, 100 meters to 150 meters, or 150 metersto 200 meters. In some embodiments, the preset threshold may be 10meters, 20 meters, 30 meters, 40 meters, 50 meters, 60 meters, 70meters, 80 meters, 90 meters, 100 meters, or the like. For example, whenthe preset threshold is 100 meters, e.g., when the distance between astarting position of a historical order and a current location of apassenger is less than 100 meters, it shows that the starting locationof the historical order is located in proximity to the passenger.

After obtaining the historical order, the positioning engine 110 maydetermine the meetup location in step 1530 based on the historical orderdescribed above. In some embodiments, the meetup location may bedetermined by determining an average or clustered value of a startinglocation of the historical order as a final meetup location. In someembodiments, the historical order may not be obtained. If the locationinformation acquired in step 1510 include information relating to themeetup location, then the meetup location may be directly designated asthe final meetup location. If the location information acquired in step1510 does not include the meetup location but includes the currentlocation of the passenger, then the current location of the passengermay be designated as the final meetup location. In some embodiments, thepositioning engine 110 may rank the searched historical orders from thesmallest to the largest based on the distance between the startinglocation and the current location of the passenger, and designate thestarting location of a historical order with the smallest distance as afinal meetup location. The positioning engine 110 may then send thefinal meetup location to the passenger and a driver. In someembodiments, after obtaining an order sent by a passenger, thepositioning engine 110 may further filter the historical orders obtainedin step 1520 based on other information such as current trafficconditions, time, weather, or the like, and determine a final meetuplocation based on the filtered result.

In addition, in some embodiments, the location information obtained bythe positioning engine 110 in step 1510 may include information aboutthe meetup location. If both the positioning engine 110 and a driveraccept the location, the positioning engine 110 may not have to performstep 1520. The location described above may be directly designated asthe final meetup location.

The route processing unit 340 of the positioning engine 110 may generateone or more routes from the current position of the driver to the meetuplocation and one or more routes from the meetup location to the endinglocation of the order based on the meetup location, the current locationof the driver, and the ending location of the order. The route planningmethods and designing factors thereof may be found elsewhere in thepresent disclosure, and will not be further described here. Thepositioning engine 110 may send the one or more routes described aboveto the passenger terminal device 120 and/or the driver terminal device140 via the passenger interface 230 and/or the driver interface 240.

It should be noted that the above description of the process ofgenerating meetup locations is merely illustrative, and not intended tolimit the scope of the present disclosure. For persons having ordinaryskills in the art, various variations and modifications of generatingmeetup locations may be conducted under the teaching of the presentdisclosure. However, those variations and modifications may not departthe spirit and scope of this disclosure. All such modifications andvariations are within the protection scope of the present disclosure.

FIG. 16 is a flow chart of an exemplary process for determining a meetuplocation by the positioning engine 110 according to some embodiments ofthe present disclosure. In step 1610, location information of apassenger may be obtained by the passenger interface 230 of thepositioning engine 110 via the network 150. The location information mayinclude an approximate positioning location or a precise positioninglocation. The location information of the passenger may be included in aservice request. The service request may include other information suchas indications or preferences of the passenger for a final meetuplocation.

In step 1620, the positioning engine 110 may determine one or morecandidate meetup locations based on the location information. Accordingto some embodiments of the present disclosure, when the positioningengine 110 obtains the service request of the passenger and the locationinformation, the location analyzing unit 310 may identify where thepassenger is located according to the location information of thepassenger. The positioning engine 110 may calculate multiple popularmeetup locations in the area and then designate the multiple popularmeetup locations as candidate meetup locations by accessing the meetuplocations of historical order records in the area stored in the database130.

According to some embodiments of the present disclosure, the positioningengine 110 may determine a candidate meetup location based on a certainthreshold distance. Based on the passenger location, the positioningengine 110 may search a meetup location within a certain threshold rangefrom the passenger location. The meetup location may then be designatedas the candidate meetup location.

According to some embodiments of the present disclosure, based onpreferences or indications of the passenger for the meetup location ofservice request of the passenger, the meetup location that the passengermay prefer to choose or indicate may be designated as a candidate meetuplocation.

Next, in step 1630, based on a preset rule, the meetup locationprocessing unit 330 of the positioning engine 110 may evaluate multiplecandidate meetup locations. Based on different evaluation criteria andevaluation methods, the preset rules of evaluation may be different.According to some embodiments of the present disclosure, the evaluationcriteria may be distances between the location of the passenger and eachof multiple candidate meetup locations (the distance may bestraight-line distance or road distance), time spent from the locationof the passenger to each of multiple candidate meetup locations, trafficand road conditions from the location of the passenger to each ofmultiple candidate meetup locations, route safety situations from thelocation of the passenger to each multiple candidate meetup locations,or the like, or any combination thereof. According to some embodimentsof the present disclosure, the method of evaluation may include scoringand/or ranking.

The following examples are intended to simply describe the evaluationmethods and criteria. For example, a shorter distance between thelocation of the passenger and one of the multiple candidate meetuplocations may generate a higher score/rank. According to someembodiments of the present disclosure, a shorter time spent from thelocation of the passenger to one of the multiple candidate meetuplocations may generate a higher score/rank. According to otherembodiments of the present disclosure, a smaller traffic congestionlevel of the route from the location of the passenger to one of themultiple candidate meetup locations may generate a higher score/rank.According to other embodiments of the present disclosure, a highersecurity index of the route from the location of the passenger to one ofthe multiple candidate meetup locations may generate a higherscore/rank.

In step 1640, the positioning engine 110 may select a preset number ofmeetup locations based on the evaluation of each candidate meetuplocation in step 1630. Then, the meetup locations may be sent to thepassenger terminal device 120 and the driver terminal device 140 via thepassenger interface 230 and the driver interface 240, respectively.According to some embodiments, the preset number may be optional. Forexample, the preset number may be 1 to 5, or other numerals. The methodof selecting may include selecting a meetup location with a higher scoreor rank based on the score or rank, removing a candidate meetup locationbased on some thresholds or scopes of the score or rank, or the like.

In some embodiments, the positioning engine 110 may send the presetnumber of meetup locations to the passenger terminal device 120 via thepassenger interface 230, but not send the same information to the driverterminal device 140. Similarly, the positioning engine 110 may send thepreset number of meetup locations to the driver terminal device 140 viathe driver interface 240, but not send the same information to thepassenger terminal device 120.

In step 1650, the positioning engine 110 may obtain processed datarelated to the meetup location by the passenger terminal device 120 andthe driver terminal device 140 via the passenger interface 230 and thedriver interface 240, respectively. The processing of the meetuplocation by the passenger and the driver may include selecting,eliminating, evaluating or updating one or more candidate meetuplocations. The evaluation may be performed in the form of rating in textor scoring. The evaluation may represent the preference of the passengeror the driver for one or more candidate meetup locations.

In some embodiments, the passenger terminal device 120 and the driverterminal device 140 may receive five candidate meetup locations (a, b,c, d, e) from the positioning engine 110. The passenger may eliminatelocations b, c, and d using the passenger terminal device 120. Thedriver may eliminate locations c and d using the driver terminal device140. A result of the locations b, c, and d that are marked as“elimination” may be returned. In some embodiments, the positioningengine 110 may obtain a preset number of selected meetup locations fromthe passenger terminal device 120 and the driver terminal device 140,respectively. For example, if the passenger terminal device 120 and thedriver terminal device 140 both obtain five candidate meetup locations(a, b, c, d, e), the passenger may select locations b, c, and d by thepassenger terminal device 120 and the driver may select locations c andd by the driver terminal device 140. Finally, the positioning engine 110may obtain candidate meetup location (b, c, d) returned by the passengerterminal device 120 and candidate meetup location (c, d) returned by thedriver terminal device 140.

In some embodiments, the positioning engine 110 may obtain theprocessing of the meetup locations by the passenger terminal device 120via the passenger interface 230, but not obtain similar information fromthe driver terminal device 140. Similarly, the positioning engine 110may obtain the processing of the meetup locations by the driver terminaldevice 140 via the driver interface 240, but not obtain similarinformation from the passenger terminal device 120.

In step 1660, a processed meetup location which has the highestevaluation may be determined as an appointed meetup location by theprocessing module 210 of the positioning engine 110. Herein, theprocessing module 210 may firstly preprocess the processing of themeetup locations by the passenger terminal device 120 and the driverterminal device 140 to obtain a set that includes at least one meetuplocation. The preprocessing of the meetup locations may includeperforming a set operation on the meetup locations received from thepassenger terminal device 120 and the driver terminal device 140. Forexample, the set operation may include an intersection operation, aunion operation, a complementary set operation, or the like. Theprocessing module 210 may obtain a set including at least one meetuplocation by preprocessing.

After obtaining the set, the processing module 210 may evaluate themeetup location of the set based on the preset rule in step 1630. Theevaluation criteria and methods may be found in above description andwill not be further described here. According to the score of scoring orthe rank of ranking, a meetup location with the highest evaluation (thehighest score or top rank) may be determined as an appointed meetuplocation for the passenger and the driver.

In step 1670, the positioning engine 110 may send the appointed meetuplocation to the passenger terminal device 120 and the driver terminaldevice 140, and thus inform both service sides of the meetup location.

Base on the meetup location, the current location of the driver and theending location of the order described above, the route processing unit340 of the positioning engine 110 may generate one or more routes fromthe current location of the driver to the meetup location, and one ormore routes from the meetup location to the ending location of theorder. The routes planning methods and designing factors thereof may befound elsewhere in the present disclosure, and will not be furtherdescribed here. The positioning engine 110 may send the routes to thepassenger terminal device 120 and/or the driver terminal device 140 viathe passenger interface 230 and/or the driver interface 240.

In some embodiments, the positioning engine 110 may send the meetuplocations and the routes indifferent forms. The different forms mayinclude but is not limited to voice, text, image, or the like. Forexample, the positioning engine 110 may send the meetup location and theroutes to the passenger terminal device 120 and/or the driver terminaldevice 140 via the passenger interface 230 and/or the driver interface240 using a voice broadcasting method.

FIG. 17 is a flow chart of an exemplary process for determining a meetuplocation by the positioning engine 110 according to some embodiments ofthe present disclosure. In step 1710, the positioning engine 110 mayobtain a departure location and/or a current location of a passenger.The departure location and/or the current location of the passenger maybe location information in a text format inputted by the passenger,geographic coordinate information selected by the passenger (e.g.,sliding map interface, selecting pull-down menu, etc.), information ofvoice inputted by the passenger including the departure location and/orthe current location, or multimedia information such as an image takenby the passenger using the passenger terminal device 120. In someembodiments, the departure location of the passenger may not be the sameas the current location of the passenger. For example, a passenger mayreserve a transportation service, and the location of the transportationservice is not the final departure location.

After obtaining the departure location and/or the current location, thepositioning engine 110 may analyze or reversely analyze the informationin step 1720. If the form of storing map data does not match the form ofthe obtained departure location and/or the current location, thepositioning engine 110 may analyze or reversely analyze the obtainedlocation. For example, the positioning engine 110 may store map data inthe form of geographic coordinates. When the location informationobtained by the positioning engine 110 is address descriptioninformation, such as the name or the street number of a store, thepositioning engine 110 may search the description of the store to findthe corresponding geographic coordinate such as longitude and latitudeinformation by the address analyzing unit 310 of the processing module210. As another example, the positioning engine 110 may store map datain the form of street numbers. When the positioning engine 110 obtainsthe geographic coordinate information of a certain place, the addressanalyzing unit 310 of the processing module 210 may reversely analyzethe geographic coordinate information to find the corresponding addressdescription information such as the street number. The addressdescription information described above may be map data in the database130.

After analyzing or reversely analyzing the address, the positioningengine 110 may obtain a first meetup location set and the correspondingaddress description information based on the departure location and/orthe current location of the passenger in step 1730. The first meetuplocation set may be obtained based on different criteria. For example,the criterion may be a distance from the location of a driver to thedeparture location or the current location of the passenger. Thedistance may be a road distance or a straight-line distance. As anotherexample, the criterion may be an average time of arrival from thelocation of the driver to the departure location of the passenger. Theaverage time may be obtained based on speeds. After obtaining the firstmeetup location set, the address analyzing unit 310 of the processingmodule 210 may reversely analyze the address of the first meetuplocation set to find the corresponding address description information.

In step 1740, the meetup location processing unit 330 of the positioningengine 110 may evaluate each first meetup location of the first meetuplocation set based on a preset rule. There may be various preset rulesof evaluation based on different evaluation criteria and evaluationmethods. The details of the evaluation criteria and the evaluationmethods may be found in step 1630 in FIG. 16, and will not be furtherdescribed here.

After obtaining the evaluation of the first meetup location set, thepositioning engine 110 may generate a second meetup location set and thecorresponding address description information in step 1750.

The process of generating the second meetup location set may beselecting some meetup locations from the first meetup location set toobtain a second meetup locations set that includes at least one secondmeetup location based on the evaluation results. In some embodiments,based on a preset number N, the positioning engine 110 may select Nfirst meetup locations with the highest score or ranking top N firstmeetup locations. In some embodiments, the positioning engine 110 maymark the first meetup locations which may exceed the preset thresholdevaluation (e.g., the preset threshold evaluation may be a certainpercentage) as the second meetup locations. In some embodiments, thepreset number N may be adjusted as needed. Some or all of the firstmeetup location set may be selected as the second meetup location set.When selecting some of the first meetup locations, the first N meetuplocations may be selected based on a certain ranking order of theevaluation results. Similarly, the percentages may be adjusted asneeded.

The process described above may also be a duplicate removal process ofthe first meetup location set. According to some embodiments, thepositioning engine 110 may determine whether the distance between anytwo first meetup locations is less than a preset distance. Thepositioning engine 110 may perform the duplicate removal process andremove a part of the first meetup locations to obtain one or more secondmeetup locations in response to determining that the distance betweenany two first meetup locations is less than a preset distance. Thedistance between the two first meetup locations may be a straight-linedistance, a road distance, or a travel distance.

After obtaining the second meetup location set, the positioning engine110 may obtain the corresponding address description information of thesecond meetup location set by analyzing addresses and/or reverselyanalyzing addresses. The description of the process may be found in step1720, and will not be further described here.

In step 1760, the positioning engine 110 may send the generated secondmeetup location set and the corresponding address descriptioninformation to the passenger terminal device 120 and/or the driverterminal device 140 via the passenger interface 230 and/or the driverinterface 240, respectively. In some embodiments, the generated secondmeetup location set and the corresponding address descriptioninformation may be sent to the passenger terminal device 120 and thedriver device 140 in different forms. According to some embodiments ofthe present disclosure, the meetup locations may be sent to thepassenger terminal device 120 and/or the driver device 140 in the formof text. The address description information may be sent to thepassenger terminal device 120 and/or the driver device 140 in the formof text or voice.

The route processing unit 340 of the positioning engine 110 may generateone or more routes from the current location of the driver to the meetuplocation and one or more routes from the meetup location to the endinglocation of the order based on the meetup location, the current locationof the driver, and the ending location of the order described above. Theroute planning methods and design elements may be found elsewhere in thepresent disclosure, and will not be further described here. Thepositioning engine 110 may send the routes to the passenger terminaldevice 120 and/or the driver terminal device 140 via the passengerinterface 230 and/or the driver interface 240.

It should be noted that the above description of generating the meetuplocations is merely illustrative, and not intended to limit the scope ofpresent disclosure. For persons having ordinary skills in the art,various variations and modifications of generating the meetup locationsmay be conducted under the teaching of the present disclosure. However,those variations and modifications may not depart the spirit and scopeof this disclosure. For example, after obtaining the departure locationand/or the current location of the passenger, the positioning engine 110may skip step 1720 and directly perform step 1730.

FIG. 18 is a flow chart of an exemplary process for generating a meetuplocation by the positioning engine 110 according to some embodiments ofthe present disclosure. In step 1810, the positioning engine 110 mayobtain location information of an order sender (e.g., the passenger). Inother parts of the present disclosure, “location information” may berepresented by “address information” or “address location information”.Step 1810 may be performed by the passenger interface 230. The locationinformation may include but is not limited to the current location ofthe passenger, the starting location of the order, the ending locationof the order, or the like, or any combination thereof. The positioningengine 110 may obtain other information via the passenger interface 230.The description of the other information is similar to the descriptionsin other parts of the present disclosure.

In some embodiments, the location information may be represented bycoordinate of the location. The coordinate of the location may belongitude and latitude coordinate. In some embodiments, the locationinformation may be represented by the name of the location. When thelocation information is represented by coordinate of the location, instep 1820, the positioning engine 1820 may reversely analyze thelocation information to generate location information that isrepresented by the name of the location. The analyzing for the locationinformation may be implemented by the address analyzing unit 310. Next,in step 1830, the positioning engine 110 may generate a candidate meetuplocation according to the location information that is represented bythe name of the location. If the location information obtained by thepositioning engine 110 in step 1810 is represented by the name of thelocation, step 1820 may then be skipped and step 1830 may be directlyperformed to generate candidate meetup locations.

In step 1830, the number of the candidate meetup locations generated bythe positioning engine 110 may be one, two, three, four, five, six, orany other number. Rules of generating the candidate meetup location maybe based on historical orders or preset meetup locations that alreadystored in the positioning engine 110. The preset meetup locations mayrefer to some address locations stored in the positioning engine 110 orthe database 130, for example, the address location may be a place ofgetting on or off a car or a place of temporary stop. Those addresslocations may be candidate meetup locations. The method of generating acandidate meetup location based on historical orders may be found indescriptions in other parts of the present disclosure.

In some embodiments, the positioning engine 110 may designate someaddress locations as meetup locations. The address locations that aredesignated as the meetup locations may be fixed within a certain time,or constantly updated. The updated period may include but is not limitedto a week, a month, a quarter, half a year, a year, or the like. Themethods of updating may include adding a new location as a meetuplocation and removing some existing meetup locations.

In some embodiments, the positioning engine 110 may store information ofa meetup location. The meetup locations may effectively reduce thecomplexity of communication between the driver and the passenger aboutthe departure location. Thus, the efficiency of pickup may be improved.The meetup locations may be stored in the database 130, the storagemodule 220 and other units and modules of the system that can storedata. When obtaining the current location of a passenger and/or thestarting location of an order sent by the passenger, the positioningengine 110 may search for a meetup location based on a certain rule anddesignate the obtained meetup location as a candidate meetup location.The rule may be searching pickup points within a certain distance rangefrom the current location of the passenger or the starting location ofthe order. The distance range may be 1 to 200 meters, 200 to 300 meters,300 to 400 meters or 400 to 500 meters. In some embodiments, thedistance range may be 1 to 50 meters, 50 to 100 meters, 100 to 150meters, or 150 to 200 meters. In some embodiments, the distance rangemay be 10 meters, 20 meters, 30 meters, 40 meters, 50 meters, 60 meters,70 meters, 80 meters, 90 meters, 100 meters, or the like.

After generating candidate meetup locations, the positioning engine 110may send the candidate meetup locations to the passenger terminal device120. In addition, the positioning engine 110 may send other informationto the passenger terminal device 120. The other information may includebut is not limited to the distance between the candidate meetup locationand the current location of the passenger, the time spent by thepassenger from his/her current location to the candidate meetuplocation, the road condition of the candidate meetup location, or thelike, or any combination thereof. The candidate meetup locations andother information may be displayed by the passenger terminal device 120for the passenger's reference.

In some embodiments, after obtaining candidate meetup locations sent bythe positioning engine 110, the passenger may directly select one of thecandidate meetup locations as a final meetup location. The positioningengine 110 may send the final meetup location to the driver terminaldevice 140 and/or the passenger terminal device 120. In someembodiments, after a passenger obtains candidate meetup locations sentby the positioning engine 110, the passenger may select or delete one ormore options and send the remaining options back to the positioningengine 110. Next, the positioning engine 110 may obtain a processingresult of the candidate meetup location from the passenger terminaldevice 120. The positioning engine 110 may further process theprocessing result, and then generate a final meetup location. The methodof further process the processing result by the positioning engine 110may include scoring each remaining meetup location and designate themeetup location with the highest score as the final meetup location. Therules of scoring may be based on the level of traffic congestion of theroad where the meetup location is located, the distance between themeetup location and the current location of the passenger, the timespent by the passenger from his/her current location to the meetuplocation, or the like, or any combination.

Based on the meetup location, the current location of the driver and theending location of the order, the route processing unit 340 of thepositioning engine 110 may generate one or more routes from the currentlocation of the driver to the meetup location, and one or more routesfrom the meetup location to the ending location of the order. The routeplanning methods and designing factors thereof may be found elsewhere inthe present disclosure, and will not be further described here. Thepositioning engine 110 may send the route to the passenger terminaldevice 120 and/or the driver terminal device 140 by the passengerinterface 230 and/or the driver interface 240.

It should be noted that the above description of generating the meetuplocations is merely illustrative, and not intended to limit the scope ofpresent disclosure. For persons having ordinary skills in the art,various variations and modifications of generating the meetup locationsmay be conducted under the teaching of the present disclosure. However,those variations and modifications may not depart the spirit and scopeof this disclosure.

FIG. 19-A is a flow chart of an exemplary process for coordinatingdistance measurement for multiple parties (e.g., the passenger terminaldevice 120 and the driver terminal device 140) by the positioning engine110, when the passenger terminal device 120 is in proximity to thedriver terminal device 140, according to some embodiments of the presentdisclosure. When a transportation service request of a passenger isaccepted by a driver, the driver may go to a meetup location to pick upthe passenger.

In step 1910, the positioning engine 110 may obtain preliminarypositioning information from the passenger terminal device 120 and thedriver terminal device 140 via the passenger interface 230 and thedriver interface 240, respectively. The preliminary positioninginformation may or may not be obtained in real-time. The preliminarypositioning information may be determined using one or more positioningtechnologies in general. The details of the positioning technologies maybe found in the above descriptions, and will not be further describedhere. The preliminary positioning information of the passenger terminaldevice 120 and the driver terminal device 140 may be generated using asame positioning technology, or different positioning technologies. Thepositioning engine 110 may calculate a distance between two parties bythe processing module 210 based on the preliminary positioninginformation of the parties. The distance may be a straight-line distanceor a shortest road distance. In some embodiments, the road distance maybe the shortest travel distance of a vehicle.

In step 1920, the positioning engine 110 may compare the calculateddistance between the passenger terminal device 120 and the driver device140 with a preset threshold value. In some embodiments, the presetthreshold may be determined based on a signal coverage range and/or ameasuring range of a measuring device. In some embodiments, the presetthreshold may be determined individually based on historical orders ofone of the parties. The preset threshold may also be determinedcollectively based on historical orders of the parties. The historicalorder information described above may be obtained by retrieving orquerying the historical order database 710 of the database 130. In someembodiments, the preset threshold may be determined based on thegeographic area and/or the particular location where the passengerterminal device 120 and the driver terminal device 140 are located. Theparticular geographic area and/or particular location information may beobtained by retrieving or querying the map database 720 of the database130. In some embodiments, the preset threshold may be determined basedon personal preferences of a passenger and a driver. The personalpreferences may be obtained by retrieving or querying the userinformation stored in the user database 730 of the database 130.

If the distance between the passenger terminal device 120 and the driverdevice 140 is less than the preset threshold value, the process mayproceed to step 1930. Alternatively, in response to determining that thedistance between the passenger terminal device 120 and the driver device140 is greater than or equal to the present threshold value, the processcan proceed to step 1910 and the positioning engine 110 may continue toobtain the preliminary positioning information of the passenger terminaldevice 120 and the driver device 140.

In step 1930, the positioning engine 110 may send instructions to thepassenger terminal device 120 and/or the driver terminal device 140 viathe passenger interface 230 and/or the driver interface 240, so that thedistance measuring devices of one or more of the parties may be turnedon. The distance measuring device may refer to a device that is capableof measuring the distance between objects using a distance measuringtechnology. The distance measuring device may be integrated in thepassenger terminal device 120 or the driver terminal device 140 (e.g.,the distance measuring device may be integrated in the communicationmodule 640). The distance measuring device may be an external deviceconnected with the passenger terminal device 120/the driver terminaldevice 140. The distance measuring technology may be based onelectromagnetic wave, acoustic wave, or other waves, or any combinationthereof.

For example, the distance measuring technology may be based onelectromagnetic wave such as radio wave, infrared ray, visible light, orthe like, or any combination thereof. The distance measuring technologymay be based on radio wave such as the Bluetooth® band, or othermicrowave bands. The distance measuring technology may be based oninfrared ray such as near-infrared ray, middle infrared ray,far-infrared ray, or the like, or any combination thereof.

The distance measuring technology may be based on acoustic wave such asultrasonic, infrasonic wave, acoustic waves of other frequency bands, orthe like, or any combination of.

The distance measuring technology based on electromagnetic wave oracoustic wave may be based on one or more of multiple principles tomeasure a distance.

For example, the distance measuring technology based on electromagneticwave or acoustic wave may be based on wave propagation time, Dopplereffect, signal strength, signal attenuation characteristic, or the like,or any combination thereof.

In some embodiments, the instructions of the positioning engine 110 mayinstruct one or more distance measuring devices to be turned on. Thedistance measuring devices of the parties may be instructed to be turnedon simultaneously, or only one of them may be instructed to be turnedon.

In some embodiments, the positioning engine 110 may not sendinstructions to the distance measuring devices of the passenger terminaldevice 120 and/or the driver terminal device 140, but may send theinstructions to a public distance measuring device that does not belongto the passenger terminal device 120 or the driver terminal device 140to turn on the public distance measuring device. The public distancemeasuring device may be an information source 160 in the on-demandservice system 105 or the network environment 100. The public distancemeasuring device may obtain the distance information or the directioninformation of one or more of the parties by measuring the distancebetween the passenger terminal device 120 and the driver device 140

When the distance measuring device is turned on, the positioning engine110 may obtain distance measuring data sent by the distance measuringdevice in step 1940 and the current distance between the parties. Thedistance measuring data may be original data, intermediate data, finaldata (e.g., the distance measuring data may be a calculated distancebetween the parties), or the like, or any combination thereof. Thedistance between the parties may be directly included in the distancemeasuring data obtained by the positioning engine 110. The distancebetween the passenger and the driver may also be the distance measuringdata obtained by calculating and processing by the processing module 210of the positioning engine 110.

In step 1950, the positioning engine 110 may send the current distanceobtained in step 1940 to the passenger terminal device 120 and thedriver terminal device 140 via the passenger interface 230 and thedriver interface 240 via the network 150, respectively, so that thepassenger terminal device 120 and the driver terminal device 140 maydisplay the distance by their respective content presentation module610.

It should be noted that the above description of the positioning engine110 coordinates the distance measuring process of the parties isprovided for the purposes of illustration, and not intended to limit thescope of the present disclosure. For persons having ordinary skills inthe art, any combinations of the above steps, various variations andmodifications of coordinating the distance measuring process may beconducted under the teaching of the present disclosure. However, thosevariations and modifications may not depart the spirit and scope of thisdisclosure. For example, if one of the parties directly obtains thecurrent distance between the passenger and the driver, the positioningengine 110 may send the current distance to the opposite party. Forexample, the distance measurement between the passenger terminal device120 and the driver terminal device 140 may be performed based on thedirect communication between the two parties without the coordination ofthe positioning engine 110. More particularly, one of the two partiesmay send a request to require the opposite party to turn on the distancemeasuring device and to perform the distance measurement, or the like,by the communication module 640. After the distance measuring device ofthe opposite party is turned on, the above distance measuring processmay be completed and the distance measuring data may be obtained.

FIG. 19-B is a flow chart of an exemplary process for distancemeasurement when the passenger terminal device 120 is in proximity tothe driver terminal device 140 according to some embodiments of thepresent disclosure.

In step 1915, the driver terminal device 140 may obtain its ownpositioning information. In some embodiments, the driver terminal device140 may obtain the positioning information by the positioning module630. In some embodiments, the positioning information obtained by thedriver terminal device 140 may be the passenger input informationobtained by the I/O module 620. The user input information may be textinformation, voice information, or image information. More particularly,the image information may be still image information or videoinformation.

In step 1925, the driver terminal device 140 may send the obtainedpositioning information by the communication module 640. The positioninginformation may be obtained by the system 105 or the passenger terminaldevice 120.

In step 1935, the driver terminal device 140 may determine that whetheran instruction of turning on the distance measuring device integrated inthe driver terminal device 140 from the positioning engine 110 isreceived. The process may proceed to step 1945 in response todetermining that the instruction is received. Alternatively, the processmay return to step 1915 to continue to acquire the positioninginformation in response to determining that an instruction of turning onthe distance measuring device on the driver terminal device 140 from thepositioning engine 110 is not received.

According to some embodiments of the present disclosure, in step 1935,content waiting to be determined may not be an instruction from thepositioning engine 110, but may be a request from the passenger terminaldevice 120. The content of the request is to request the driver terminaldevice 140 to turn on the distance measuring device.

In some embodiments, the driver terminal device 140 may directly performstep 1945 after step 1925 without determining whether an instruction isreceived.

In step 1945, the driver terminal device 140 may turn on the distancemeasuring device to measure the distance between the driver terminaldevice 140 and the passenger terminal device 120. The distance measuringmethods and the distance measuring principles used by the distancemeasuring devices may be found in the previous contents, and will not befurther described here.

In some embodiments, the driver device 140 may obtain the distancemeasuring data by turning on the distance measuring device. The distancemeasuring data may be original data, intermediate data, final data(e.g., the distance measuring data may be a calculated distance betweenthe parties), a direction of the opposite party of measuring distanceprocess, or the like, or any combination thereof.

In step 1955, the driver terminal device 140 may send the distancemeasuring data to one or more devices by the communication module 640via the network 150. In some embodiments, the devices described abovemay include a passenger terminal device 120, a system 105, or otherdevices such as a third-party computing device, or the like. By sendingthe distance measuring data to the devices, the driver terminal device140 may make the devices obtain the distance between the driver and thepassenger and provide useful information for the meeting of thepassenger and the driver. According to some embodiments of the presentdisclosure, the distance measuring data may be original data,intermediate data, final data (e.g., the distance measuring data may bea calculated distance between the parties), or the like, or anycombination thereof. Correspondingly, the distance measuring data may beprocessed by other objects such as the passenger terminal device 120,the system 105, or other computing devices to obtain the distancebetween the parties. The distance measuring data may also be processedlocally to obtain the distance between the parties, for example, thedistance measuring data may be processed by the driver terminal device140.

In particular, the driver device 140 may send the distance measuringdata to the passenger terminal device 120 for the passenger terminaldevice 120 to display the distance measuring data.

In step 1965, the driver terminal device 140 may obtain the distancebetween the driver and the passenger. In some embodiments, the distancemay be obtained from the passenger terminal device 120, the system 105,or other computing devices. In some embodiments, the driver terminaldevice 140 may display the distance by the content presentation module610.

According to some embodiments of the present disclosure, after thedriver terminal device 140 processes and calculates the distance betweenparties (e.g., a passenger and a driver), the driver terminal device 140may not perform step 1965.

It should be noted that the above description of the distancemeasurement of the two parties (the passenger and the driver) by thedriver terminal device 140 is provided for the purposes of illustration,and not intended to limit the scope of the present disclosure. However,those variations and modifications may not depart the spirit and scopeof this disclosure. For persons having ordinary skills in the art, anycombinations of the above steps, various variations and modifications ofperforming the above process may be conducted under the teaching of thepresent disclosure. For example, step 1935 (determining operation) isnot necessary, or step 1965 (obtaining distance) is not necessary. Allsuch modifications are within the protection scope of the presentdisclosure.

FIG. 20 is a flow chart of an exemplary process for distance measurementfor the passenger terminal device 120 by the positioning engine 110through Bluetooth® base station according to some embodiments of thepresent disclosure.

In step 2010, the positioning engine 110 may obtain the preliminarypositioning information of the passenger terminal device 120 and thedriver terminal device 140 via the passenger interface 230 and thedriver interface 240, respectively. According to some embodiments, thepreliminary positioning information of the passenger terminal device 120and the driver terminal device 140 may be information in differentforms. For example, the preliminary positioning information may be textinput information, icon information in an image interface, orpositioning information determined using one or more positioningtechnologies. The information may or may not be obtained in real-time.The preliminary positioning information of the passenger terminal device120 and the driver terminal device 140 may or may not be obtained at thesame time. For example, the preliminary positioning information of thepassenger terminal device 120 may be obtained in non real-time. Thepreliminary positioning information of the driver terminal device 140may be obtained in real-time, and vice versa. The positioning engine 110may calculate the distance between the passenger and the driver by theprocessing module 210 based on the obtained preliminary positioninginformation of the passenger terminal device 120 and the driver terminaldevice 140. As described above, the distance may be the straight-linedistance, the shortest road distance, or the shortest travel distance.

In step 2020, the positioning engine 110 may perform a decision-makingon the distance between the passenger terminal device 120 and the driverterminal 140 to determine whether the distance between the passenger andthe driver is less than a certain threshold. The process may proceed tostep 2030 in response to determining that the distance between thepassenger and the driver is less than the certain threshold.Alternatively, the process may return to step 2010 in response todetermining that the distance between the passenger and the driver isgreater or equal to the certain threshold.

The detailed descriptions of the decision-making may be found in abovedisclosure in FIGS. 19-A and 19-B, and will not be further describedhere.

It should be noted that the threshold may be determined based on factorssuch as signal coverage area or measuring range of Bluetooth® basestation. The determination of the threshold may be determined based onhistorical orders of one or more parties (the passenger and/or thedriver). The historical order information may be obtained by retrievingor inquiring the historical order database 710 of the database 130. Thedetermination of the threshold may be obtained based on geographic areaor particular location of the passenger terminal device 120 and thedriver terminal device 140. The particular geographic area or theparticular location information may be obtained by retrieving orinquiring the map database 720 of the database 130. The determination ofthe threshold may be obtained based on personal preference of thepassenger and the driver. The personal preference may be obtained byretrieving or inquiring user information that is stored in the userdatabase 730 of the database 130.

More particularly, the threshold may be determined based on a radius ofthe signal coverage area of a Bluetooth® base station. For example, ifthe radius of the signal coverage area of the Bluetooth® base station is50 meters, the preset threshold may be set as 50 meters. Certainly, italso may be set as required. For example, considering calculationaccuracy, the preset threshold may be less than the value of the radiusof the signal coverage area of the Bluetooth® base station. For example,if the radius of the signal coverage area of the Bluetooth® base stationis 50 meters, the preset threshold may be set as 40 meters, 30 meters,20 meters, or the like.

In step 2030, the positioning engine 110 may send an instruction to theBluetooth® base station to turn on the station and send a broadcastsignal. According to some embodiments, the Bluetooth® base station maydetermine locations of other objects using the Bluetooth® positioningtechnology and calculate the distance between each of objects and theBluetooth® base station. The number of the Bluetooth® base stations maybe one or more. The Bluetooth® base station may be a public Bluetooth®base station. For example, it may be installed on a facility which canbe accessed by the public. The Bluetooth® base station may also be aprivate Bluetooth® base station. For example, it may be installed aroundthe passenger and/or the driver. According to some embodiments of thepresent disclosure, the Bluetooth® base station may be located inproximity to the driver terminal device 140 (e.g., the station may beset on the car of the driver). Thus, the distance between the passengerterminal device 120 and the Bluetooth® base station may be designated asthe current distance between the passenger terminal device 120 and thedriver terminal device 140.

In some embodiments, the Bluetooth® base station may be an iBeaconBluetooth® base station. The iBeacon released by Apple Inc. is aBluetooth® base station protocol based on Bluetooth® 4.0. When apassenger terminal device 120 supporting iBeacon enters the signalcoverage area of an iBeacon Bluetooth® base station, the passengerterminal device 120 may obtain broadcast signal sent by the iBeaconBluetooth® base station. The distance between the passenger terminaldevice 120 and the iBeacon Bluetooth® base station may be calculatedbased on the signal strength of the broadcast signal.

It should be noted that the above description of the Bluetooth® basestation is merely illustrative, and not intended to limit the scope ofthe present disclosure. For persons having ordinary skills in the art,any combinations of the above steps, various variations andmodifications of performing the above process may be conducted under theteaching of the present disclosure. However, those variations andmodifications may not depart the spirit and scope of this disclosure.For example, the Bluetooth® base stations may be other Bluetooth® basestations with similar function

In step 2040, the positioning engine 110 may obtain broadcast signalstrength between the passenger terminal device 120 and the Bluetooth®base station sent by the passenger terminal device 120 via the passengerinterface 230. In step 2040, except obtaining the broadcast signalstrength, the positioning engine 110 may obtain other information (e.g.,the positioning engine 110 may obtain an identifier and identityinformation of the Bluetooth® base station, a distance between thepassenger terminal device 120 and the Bluetooth® base station, otherparameters of communication between the passenger terminal device 120and the Bluetooth® base station, etc.). More particularly, theidentifier or the identity information may include but is not limited toMAC address, universal unique identification (UUID), or the like. Theother parameters of communication between the passenger terminal device120 and the Bluetooth® base station may include frequency band, power,signal to noise ratio (SNR), parameters relating to frame, other channelparameters of Bluetooth® communication, or the like. Base on the aboveinformation, the positioning engine 110 may calculate the distancebetween the passenger terminal device 120 and the Bluetooth® basestation in step 2050.

In step 2060, the positioning engine 110 may send the distance to thepassenger terminal device 120 and the driver terminal device 140 via thepassenger interface 230 and the driver interface 240 to make at leastone of the parties display the distance information.

It should be noted that the above description of the process ofcalculating the distance between the passenger terminal device 120 andthe Bluetooth® base station by the positioning engine 110 is providedfor the purposes of illustration, and not intended to limit the scope ofthe present disclosure. For persons having ordinary skills in the art,any combinations of the above steps, various variations andmodifications of performing the above process may be conducted under theteaching of the present disclosure. However, those variations andmodifications may not depart the spirit and scope of this disclosure.For example, when the passenger terminal device 120 and/or theBluetooth® base station have already calculated the distance betweenthem, step 2050 may be skipped, for example, the positioning engine 110may not perform step 2050 and step 2060 after step 2040. The positioningengine 110 may also perform step 2060 after step 2040, and send thedistance to one party of the passenger terminal device 120 and thedriver terminal device 140. As another example, the Bluetooth® basestation may position the passenger terminal device 120 and the driverterminal device 140 and measure the distance between themsimultaneously, and then calculate the distance and direction betweenthe parties based on the information of the parties and send thedistance and the direction to the parties in step 2060. As anotherexample, the distance measurement between the passenger terminal device120 and the Bluetooth® base station may not need to be coordinated bythe positioning engine 110. The communication module 640 of thepassenger terminal device 120 or the driver terminal device 140 may senda request to the Bluetooth® base station to request the Bluetooth® basestation to start to broadcast. Meanwhile, after the passenger terminaldevice 120 obtains the broadcast, the communication module 640 of thepassenger terminal device may obtain strength of the broadcast signaland other information of the communication between the passengerterminal device 120 and the Bluetooth® base station. The passengerterminal device 120 may report the strength of the broadcast signal andother information to the driver terminal device 140 through thecommunication module 640 to make the processing module 640 of the driverterminal device 140 process and calculate the distance between thepassenger terminal device 120 and the Bluetooth® base station.Alternatively, the passenger terminal device 120 may obtain the distancebetween the passenger terminal device 120 and the Bluetooth® basestation by processing and calculating, and send the distance informationto the driver terminal device 140 through the communication module 640.

Similarly, the distance measurement for the driver terminal device 140by the Bluetooth® base station may be found in the description of thedistance measurement for the passenger terminal device 120.

FIG. 21 illustrates a structure of a mobile device that is configured toimplement a specific system disclosed in the present disclosure. In someembodiments, a user terminal device configured to display andcommunicate information related to locations may be a mobile device2100. The mobile device may include but is not limited to a smart phone,a tablet computer, a music player, a portable game console, a GPSreceiver, a wearable calculating device (e.g. glasses, watches, etc.),or the like. The mobile device 2100 may include one or more centralprocessing units (CPUs)2140, one or more graphical processing units(GPUs) 2130, a display 2120, a memory 2160, an antenna 2110 (e.g. awireless communication unit), a storage unit 2190, and one or moreinput/output (I/O) devices 2150. Moreover, the mobile device 2100 mayalso be any other suitable component that includes but is not limited toa system bus or a controller (not shown in FIG. 21). As shown in FIG.21, a mobile operating system 2170 (e.g. IOS, Android, Windows Phone,etc.) and one or more applications 2180 may be loaded from the storageunit 2190 to the memory 2160 and implemented by the CPUs 2140. Theapplication 2180 may include a browser or other mobile applicationsconfigured to receive and process information related to locations inthe mobile device 2100. The passenger/driver may obtain communicationinformation related to locations through the system I/O device 2150, andprovide the information to the positioning engine 110 and/or othermodules or units of the system 100, e.g. the network 150.

In order to implement various modules, units and their functionsdescribed above, a computer hardware platform may be used as hardwareplatforms of one or more elements (e.g., the positioning engine 110and/or other sections of the system 100 described in FIG. 1 through FIG.20). Since these hardware elements, operating systems and programlanguages are common, it may be assumed that persons skilled in the artmay be familiar with these techniques and they may be able to provideinformation required in the on-demand service according to thetechniques described in the present disclosure. A computer with userinterface may be used as a personal computer (PC), or other types ofwork stations or terminal devices. After being properly programmed, acomputer with user interface may be used as a server. It may beconsidered that those skilled in the art may also be familiar with suchstructures, programs, or general operations of this type of computerdevice. Thus, extra explanations are not described for the Figures.

FIG. 22 illustrates a structure of a computing device that is configuredto implement a specific system disclosed in the present disclosure. Theparticular system may use a functional block diagram to explain thehardware platform containing one or more user interfaces. The computermay be a computer with general or specific functions. Both types of thecomputers may be configured to implement any particular system accordingto some embodiments of the present disclosure. The computer 2200 may beconfigured to implement any components that provides informationrequired by the on-demand service disclosed in the present description.For example, the positioning engine 110 may be implemented by hardwaredevices, software programs, firmware, or any combination thereof of acomputer like the computer 2200. For brevity, FIG. 22 depicts only onecomputer. In some embodiments, the functions of the computer, providinginformation that on-demand services may require, may be implemented by agroup of similar platforms in a distributed mode to disperse theprocessing load of the system.

The computer 2200 may include a communication terminal 2250 that mayconnect with a network that may implement the data communication. Thecomputer 2200 may also include a CPU that is configured to executeinstructions and includes one or more processors. The schematic computerplatform may include an internal communication bus 2210, different typesof program storage units and data storage units, e.g. a hard disk 2270,a read-only memory (ROM) 2230, a random-access memory (RAM) 2240),various data files applicable to computer processing and/orcommunication, and some program instructions executed possibly by theCPU. The computer 2200 may also include an I/O device 2260 that maysupport the input and output of data flows between the computer andother components (e.g. a user interface 2280). Moreover, the computer2200 may receive programs and data via the communication network.

Various aspects of methods of providing information required byon-demand service and/or methods of implementing other steps by programsare described above. The programs of the technique may be considered as“products” or “artifacts” presented in the form of executable codesand/or relative data. The programs of the technique may be joined orimplemented by the computer readable media. Tangible and non-volatilestorage media may include any type of memory or storage that is appliedin computer, processor, similar devices, or relative modules. Forexample, the tangible and non-volatile storage media may be varioustypes of semiconductor storages, tape drives, disc drives, or similardevices capable of providing storage function to software at any time.

Some or all of the software may sometimes communicate via a network,e.g. the Internet or other communication networks. This kind ofcommunication may load a software from a computer device or a processorto another. For example, a software may be loaded from a managementserver or a main computer of the on-demand service system to a hardwareplatform in a computer environment, or to other computer environmentscapable of implementing the system, or to systems with similar functionsof providing information required by on-demand service. Correspondingly,another media used to transmit software elements may be used as physicalconnections among some of the equipment. For example, light wave,electric wave, electromagnetic wave, etc. may be transmitted by cables,optical cables or air. Physical media used to carry waves, e.g. cable,wireless connection, optical cable, or the like, may also be consideredas media of hosting software. Herein, unless the tangible “storage”media is particularly designated, other terminologies representing the“readable media” of a computer or a machine may represent media joinedby the processor when executing any instruction.

A computer readable media may include a variety of forms, including butis not limited to tangible storage media, wave-carrying media orphysical transmission media. Stable storage media may include compactdisc, magnetic disk, or storage systems that are applied in othercomputers or similar devices and may achieve all the sections of thesystem described in the drawings. Unstable storage media may includedynamic memory, e.g. the main memory of the computer platform. Tangibletransmission media may include coaxial cable, copper cable and opticalfiber, including circuits forming the bus in the internal of thecomputer system. Wave-carrying media may transmit electric signals,electromagnetic signals, acoustic signals or light wave signals. Andthese signals may be generated by radio frequency communication orinfrared data communication. General computer readable media may includehard disk, floppy disk, magnetic tape, or any other magnetic media;CD-ROM, DVD, DVD-ROM, or any other optical media; punched cards, or anyother physical storage media containing aperture mode; RAM, PROM, EPROM,FLASH-EPROM, or any other memory chip or magnetic tape; carrying wavesused to transmit data or instructions, cable or connection devices usedto transmit carrying waves, or any other program code and/or dataaccessible to a computer. Most of the computer readable media may beapplied in executing instructions or transmitting one or more results bythe processor.

It may be understood to those skilled in the art that variousalterations and improvements may be achieved according to someembodiments of the present disclosure. For example, the variouscomponents of the system described above are all achieved by hardwareequipment. In fact, the various components of the system described abovemay be achieved merely by software, e.g. installing the system on thecurrent server. Additionally or alternatively, the location informationdisclosed here may be provided by a firmware, a combination of afirmware and a software, a combination of a firmware and a hardware, ora combination of a firmware, a hardware and a software.

The present disclosure and/or some other examples have been described inthe above. According to descriptions above, various alterations may beachieved. The topic of the present disclosure may be achieved in variousforms and embodiments, and the present disclosure may be further used ina variety of application programs. All applications, modifications andalterations required to be protected in the claims may be within theprotection scope of the present disclosure.

What is claimed is:
 1. A method for enhancing the efficiency ofon-demand transportation, implemented on a computing device having atleast one processor, at least one computer-readable storage medium, anda communication platform connected to a network, comprising: receivingfirst electrical signals encoding service request information from aservice requester, wherein the service request information includes anoriginal location of the service requester; operating a positioningengine in the at least one processor using one or more positioningtechnologies to determine an optimized location of the servicerequester; operating logical circuits in the at least one processor todetermine a candidate meetup location set based at least in part on theoptimized location of the service requester, wherein the candidatemeetup location set includes at least one candidate meetup location; andoperating the logical circuits in the at least one processor todetermine a final meetup location based on the candidate meetup locationset.
 2. The method of claim 1, wherein the operating the positioningengine in the at least one processor to determine the optimized locationof the service requester comprises: operating the positioning engine inthe at least one processor to obtain information relating to theoriginal location of the service requester; and operating thepositioning engine in the at least one processor to determine anoptimized location of the service requester based on the originallocation and the information relating to the original location of theservice requester.
 3. The method of claim 1, wherein the operating thepositioning engine in the at least one processor to determine anoptimized location of the service requester comprising: operating thepositioning engine in the at least one processor to obtain longitude andlatitude information corresponding to the original location; operatingthe at least one processor to determine one or more identificationswithin a preset range from the original location of the servicerequester based on the longitude and latitude information; and operatingthe at least one processor to determine an optimized location of theservice requester based on the one or more identifications.
 4. Themethod of claim 1, wherein the operating the positioning engine in theat least one processor to determine an optimized location of the servicerequester comprising: operating the positioning engine in the at leastone processor to obtain at least one detailed location of the originallocation of the service requester; and operating the at least oneprocessor to determine the optimized location of the service requesteramong the at least one detailed location based on selection of theservice requester.
 5. The method of claim 1, wherein the operating thepositioning engine in the at least one processor to determine anoptimized location of the service requester comprising: operating the atleast one processor to obtain at least one history order relating to theoriginal location within a given time period, wherein a distance betweena start location of the at least one history order and the originallocation of the service requester satisfies a threshold; and operatingthe at least one processor to determine the optimized location of theservice requester among the at least one detailed location.
 6. Themethod of claim 1, further comprising: operating the positioning enginein the at least one processor to generate one or more routes from acurrent position of a service provider to the final meetup location;operating the at least one processor to obtain preliminary positioninginformation of the service requester and the service provider by the oneor more positioning technologies; operating the at least one processorto turn on a base station and send a broadcast signal when a distancebetween the service requester and the service provider is less than acertain threshold based on the preliminary positioning information;operating the at least one processor to obtain broadcast signal strengthbetween the service requester and the base station sent by the servicerequester; operating the at least one processor to determine a distancebetween the service requester and the base station based on thebroadcast signal strength; and operating the at least one processor tosend the distance to the service requester and the service provider. 7.The method of claim 1, wherein the operating the logical circuits in theat least one processor to determine a candidate meetup location setbased at least in part on the optimized location of the servicerequester comprising: operating the logical circuits in the at least oneprocessor to determine a plurality of popular meetup locations within anarea close to the optimized location of the service requester ascandidate meetup locations.
 8. The method of claim 1, wherein theoperating the logical circuits in the at least one processor todetermine a final meetup location based on the candidate meetup locationset comprising: operating the logical circuits in the at least oneprocessor to evaluate the candidate meetup location set base on a presetrule, wherein the preset rule is different based on different evaluationcriteria and evaluation methods.
 9. The method of claim 8, wherein theevaluation criteria includes at least one of distances between thelocation of service requester and the one or more processed candidatemeetup locations, time spent from the location of service requester tothe one or more processed candidate meetup locations, traffic and roadconditions from and the location of service requester to the one or moreprocessed candidate meetup locations, or route safety situations fromthe location of service requester to the one or more processed candidatemeetup locations; and the evaluation methods include at least one ofscoring or ranking.
 10. The method of claim 8, wherein the evaluation ofthe candidate meetup location is based on historical informationrelating to the candidate meetup location.
 11. The method of claim 6,wherein the one or more routes are displayed on the service requesterterminal device and/or the service provider terminal device.
 12. Asystem, comprising: at least one storage medium including a set ofinstructions; at least one processor in communication with the at leastone storage medium, wherein when executing the set of instructions, theat least one processor is directed to: receive first electrical signalsencoding service request information from a service requester, whereinthe service request information includes an original location of theservice requester; operate a positioning engine in the at least oneprocessor using one or more positioning technologies to determine anoptimized location of the service requester; operate logical circuits inthe at least one processor to determine a candidate meetup location setbased at least in part on the optimized location of the servicerequester, wherein the candidate meetup location set includes at leastone candidate meetup location; and operate the logical circuits in theat least one processor to determine a final meetup location based on thecandidate meetup location set.
 13. The system of claim 12, wherein todetermine the optimized location of the service requester, the at leastone processor is directed to: operating the positioning engine in the atleast one processor to obtain information relating to the originallocation of the service requester; and operating the positioning enginein the at least one processor to determine an optimized location of theservice requester based on the original location and the informationrelating to the original location of the service requester.
 14. Thesystem of claim 12, wherein to determine an optimized location of theservice requester, the at least one processor is directed to: operatethe positioning engine in the at least one processor to obtain longitudeand latitude information corresponding to the original location; operatethe at least one processor to determine one or more identificationswithin a preset range from the original location of the servicerequester based on the longitude and latitude information; and operatethe at least one processor to determine an optimized location of theservice requester based on the one or more identifications.
 15. Thesystem of claim 12, wherein to determine an optimized location of theservice requester, the at least one processor is directed to: operatingthe positioning engine in the at least one processor to obtain at leastone detailed location of the original location of the service requester;and operating the at least one processor to determine the optimizedlocation of the service requester among the at least one detailedlocation based on selection of the service requester.
 16. The system ofclaim 12, wherein to determine an optimized location of the servicerequester, the at least one processor is directed to: operate the atleast one processor to obtain at least one history order relating to theoriginal location within a given time period, wherein a distance betweena start location of the at least one history order and the originallocation of the service requester satisfies a threshold; and operate theat least one processor to determine the optimized location of theservice requester among the at least one detailed location.
 17. Thesystem of claim 12, wherein the at least one processor is furtherdirected to: operate the positioning engine in the at least oneprocessor to generate one or more routes from a current position of aservice provider to the final meetup location; operate the at least oneprocessor to obtain preliminary positioning information of the servicerequester and the service provider by the one or more positioningtechnologies; operate the at least one processor to turn on a basestation and send a broadcast signal when a distance between the servicerequester and the service provider is less than a certain thresholdbased on the preliminary positioning information; operate the at leastone processor to obtain broadcast signal strength between the servicerequester and the base station sent by the service requester; operatingthe at least one processor to determine a distance between the servicerequester and the base station based on the broadcast signal strength;and send the distance to the service requester and the service provider.18. The system of claim 12, wherein to determine a candidate meetuplocation set based at least in part on the optimized location of theservice requester, the at least one processor is further directed to:operating the logical circuits in the at least one processor todetermine a plurality of popular meetup locations within an area closeto the optimized location of the service requester as candidate meetuplocations.
 19. The system of claim 12, wherein to determine a finalmeetup location based on the candidate meetup location set, the at leastone processor is further directed to: operating the logical circuits inthe at least one processor to evaluate the candidate meetup location setbase on a preset rule, wherein the preset rule is different based ondifferent evaluation criteria and evaluation methods.
 20. Anon-transitory computer readable medium, comprising at least one set ofinstructions for enhancing the efficiency of on-demand transportation,wherein when executed by at least one processor of an electronicterminal, the at least one set of instructions directs the at least oneprocessor to perform acts of: receiving first electrical signalsencoding service request information from a service requester, whereinthe service request information includes an original location of theservice requester; operating a positioning engine in the at least oneprocessor using one or more positioning technologies to determine anoptimized location of the service requester; operating logical circuitsin the at least one processor to determine a candidate meetup locationset based at least in part on the optimized location of the servicerequester, wherein the candidate meetup location set includes at leastone candidate meetup location; and operating the logical circuits in theat least one processor to determine a final meetup location based on thecandidate meetup location set.